Modeling Money Movement: Ledgers, State Machines, and Exactly-Once Effects
How Stripe models money movement with immutable ledger entries and explicit state machines to guarantee correctness even when networks and services fail.
Tag
28 articles
How Stripe models money movement with immutable ledger entries and explicit state machines to guarantee correctness even when networks and services fail.
How Amazon's early commitment to asynchronous, queue-based decoupling shaped SQS and became a default pattern across its service architecture.
How a painful database outage pushed Netflix to build Chaos Monkey, the Simian Army, and a culture that tests failure before failure finds you.
Why average response time hides the experience of your worst-served users, and how to measure, diagnose, and reduce tail latency in production systems.
How Uber's Cadence engine lets developers write long-running workflow logic as plain code while the platform handles retries and state durably.
How DoorDash designs for graceful degradation and load shedding so a spike or partial outage on one side of its marketplace doesn't take down the rest.
How Twitter combined fan-out-on-write and fan-out-on-read to keep timelines fast without letting celebrity accounts overwhelm the system.
Bounded buffers, reactive pull-based demand, and log-based pull consumption: three ways streaming systems handle a slow consumer.
How Shopify runs enormous volumes of background jobs safely, treating idempotency and graceful interruption as first-class design constraints.
How Facebook's Haystack replaced a filesystem-per-photo approach with a purpose-built object store to eliminate the metadata bottleneck of billions of images.
Hash-based, range-based, and directory-based shard keys compared, and why resharding is the expensive part nobody plans for early.
How Amazon's shopping cart problem led to the 2007 Dynamo paper and reshaped how the industry thinks about availability versus consistency.
How Discord keeps online status and per-channel read state consistent across millions of simultaneously connected clients without collapsing under fan-out.
How Uber's Ringpop library used consistent hashing and a gossip protocol to shard stateful services without depending on a single coordinator.
How Twitter replaced a patchwork of Cassandra clusters with Manhattan, a purpose-built, multi-tenant distributed database with pluggable storage engines.
Why LinkedIn built its own distributed document database to replace Oracle for online member data, and how it married timeline consistency with Kafka.
How Google's 2004 MapReduce paper turned a painful distributed-systems problem into a simple programming model — and accidentally created Hadoop.
How WhatsApp's store-and-forward architecture and layered acknowledgment model deliver messages reliably even when recipients are offline.
How consistent hashing limits data movement when nodes join or leave, and why virtual nodes are what makes it actually balanced.
How Google used GPS and atomic clocks to bound time uncertainty and give Spanner globally consistent ACID transactions across continents.
DoorDash adopted CockroachDB to get horizontal scalability and strong consistency for order and payment data without the operational pain of manual sharding.
How Twitter replaced a single MySQL sequence with a decentralized ID generator that packs time, machine, and sequence into a roughly sortable 64-bit ID.
Idempotency keys, atomic check-and-write, and why PUT being idempotent by spec doesn't make it the right tool for a retried write.
How Facebook turned a simple key-value cache into a cluster of thousands of memcached servers without drowning in stale reads and thundering herds.