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).
Or read this on Hacker News