System Design

System Design

A Message Queue Is a Contract About Delivery, and the Contract Has Terms

A message queue promises to deliver messages, but the promise has terms — at-least-once, at-most-once, ordering, and retries — and…

Read More »
System Design

Sharing a Database Between Microservices Defeats the Point of Having Them

Splitting a monolith into separate deployable services while leaving them all reading and writing the same database preserves every coupling…

Read More »
System Design

Load Balancing Is Not Just Distribution; It Is About Failure and State

A load balancer does more than spread traffic — it is the mechanism for handling failures and for managing state,…

Read More »
System Design

Retrying a Failing Dependency Without a Circuit Breaker Makes the Outage Worse

A dependency that is struggling under load gets a flood of retries from every caller treating each failure as transient,…

Read More »
System Design

A Cache Is a Consistency Trade, and the Trade Should Be Deliberate

Caching improves performance by serving stale data, and the trade-off between freshness and speed should be a deliberate decision, not…

Read More »
System Design

Event Sourcing Stores What Happened, Not What Is, and That Is Both Its Power and Its Cost

Event sourcing stores the history of changes rather than the current state, which gives a complete audit trail and the…

Read More »
System Design

A Queue With No Backpressure Just Delays the Crash

Adding a queue between a fast producer and a slow consumer feels like it solved the throughput mismatch. Without backpressure,…

Read More »
System Design

Sharding Moves the Problem From One Big Database to Many Hard Decisions

Sharding spreads data across many databases to scale, but it moves the problem from one big database to a set…

Read More »
System Design

Reading Your Own Write From a Replica Is a Race You Will Eventually Lose

A user updates their profile, the page reloads and reads from a replica, and the update appears to have vanished…

Read More »
Back to top button