Get the latest tech news

Every System is a Log: Avoiding coordination in distributed applications


Distributed coordination makes application complex and brittle. Because all systems eventually build on logs, we can use a shared-log approach to eliminate most coordination. We discuss this conceptually and show how this is practically implemented in the open source project Restate.

Instead, you need to review line-by-line and check: “what if the service crashes here?”, “what if the API we call here is temporarily unavailable”, “what if a concurrent invocation overtakes this one here”, or “what if this process becomes a zombie while executing this function, how do I prevent it from corrupting the state?”. Distributed applications often need to implement a complex orchestration of all the systems they interact with, carefully designing all states and operations, to establish order and invariants that help them ensure correctness. This is not just efficient, but we no longer store completed steps in a shared DB where it is easy to have it accidentally picked up in unexpected ways (see this article for how this can be a severe security and integrity loophole).

Get the Android app

Or read this on Hacker News

Read more on:

Photo of System

System

Photo of log

log

Photo of coordination

coordination

Related news:

News photo

Subaru Security Flaws Exposed Its System for Tracking Millions of Cars

News photo

A System for the Sixties-and-a-Half: The Toshiba Visicom COM-100

News photo

OpenAI Fails to Deliver Opt-Out System for Photographers