Tag

#distributed systems

10 articles tagged #distributed systems. See all tags →

Round Robin Distributes Requests, Not Work. And Your Health Check Cuts Both Ways.
New
Tech··9 min

Round Robin Distributes Requests, Not Work. And Your Health Check Cuts Both Ways.

Two things decide whether a load balancer helps. The algorithm, where round robin quietly assumes every request costs the same. And the health check, which is either too shallow to notice a broken server or so deep that one shared dependency marks your entire fleet unhealthy at once.

load balancinghealth checksreliability
Exactly-Once Delivery Does Not Exist. Your Consumer Has To Be Idempotent.
New
Tech··9 min

Exactly-Once Delivery Does Not Exist. Your Consumer Has To Be Idempotent.

Not hard, not expensive, not a premium tier. Impossible, in the proven sense, and it follows from the Two Generals problem. Every product advertising exactly-once is selling at-least-once with deduplication bolted on, which means the work was always going to land on your consumer.

message queuesdistributed systemsreliability
CAP Is Not “Pick Two of Three”, and It Describes the Rare Case
New
Tech··9 min

CAP Is Not “Pick Two of Three”, and It Describes the Rare Case

The famous framing is wrong twice over. Partition tolerance was never something you choose, and the trade-off only exists while a partition is happening. Which means CAP is silent about the decision you actually make every day, and PACELC is the version that names it.

cap theoremdistributed systemsdatabases
A Circuit Breaker Protects You From Your Dependency, Not the Other Way Around
New
Tech··9 min

A Circuit Breaker Protects You From Your Dependency, Not the Other Way Around

Almost every explanation frames this as being kind to a struggling downstream service. That is a side effect. Its actual job is stopping your own threads from piling up on timeouts, which is how a dependency you barely use takes down a service that does not need it.

circuit breakerresiliencedistributed systems
An Idempotency Key Promises One Execution, Not Eventual Success
New
Tech··9 min

An Idempotency Key Promises One Execution, Not Eventual Success

The design detail that surprises people: Stripe caches the result of the first request under a key even when that result was a 500, and replays the failure to every retry. That is correct, and once you see why, the rest of the design follows, including where most homegrown implementations go wrong.

api designidempotencyreliability
Rate Limiting: The Algorithm Is the Easy Part
New
Tech··9 min

Rate Limiting: The Algorithm Is the Easy Part

Everyone compares token bucket to sliding window and stops there. The decisions that actually determine whether a rate limiter works are what you key it on, whether your Retry-After header is quietly scheduling a thundering herd, and whether a client that gets a 429 can safely retry at all.

api designrate limitingbackend
Monolith vs Microservices: How to Actually Decide
Tech··8 min

Monolith vs Microservices: How to Actually Decide

Microservices solve an org-scale problem, not a code problem. Here is how to actually decide between a monolith and microservices, and why most startups should start with the monolith.

monolithmicroservicesarchitecture