The Transactional Outbox Pattern
Writing to your database and publishing an event are two operations that can't share a transaction. The outbox pattern fixes that, and when to skip it.
Read the analysisDistributed systems · FAANG-scale engineering
exashard is a publication on distributed systems, Kubernetes, and the architecture that takes software from one million to one billion users — written from the trenches of running a real polyglot platform, not paraphrased from documentation.
Writing to your database and publishing an event are two operations that can't share a transaction. The outbox pattern fixes that, and when to skip it.
Read the analysisOne config that differs per environment is where drift starts. Base plus overlay keeps dev, staging, and prod honest without duplicating manifests.
Deleting a user across many services is a fan-out problem with a nasty twist: what your deletion event means. Requested or executed changes everything.
Three Kafka settings decide throughput, cost, and whether replay works: partition count, retention, and cleanup policy. How to choose each deliberately.
Ad-hoc Kafka topics become an unnavigable mess. A naming convention plus a single canonical registry keeps an event bus legible as it grows past 50 topics.
Most on-call pain is bad alerts, not bad systems. Alert on symptoms users feel, page only on what needs a human now, and kill the rest. The rules.
Plain-text logs are ungreppable at scale. Structured logging makes logs queryable, but volume and cost bite back. How to log structured, useful, and affordable.
Consensus, replication, and failure at scale
BrowseOperating clusters that do not page you at 3am
BrowsePolyglot services that compose, not collapse
BrowseCapacity math and tradeoffs that hold up
BrowseThe decisions above the code
Browse