Pattern · seen in 3 breakdowns across 3 companies
Cell Architecture
Cell architecture splits a system into independent copies called cells, each serving some customers on its own, so a failure stays inside one cell and you grow by adding cells, not by enlarging one.
The mechanism
The pattern at its core: the customers split across several self-contained cells, so a failure is trapped inside whichever cell it starts in.
Fail one big fleet and everyone goes down - split into cells and the same failure stops at the cell wall.
Definition
Cell architecture organizes a system as a set of independent, self-contained units called cells, each able to serve some of the customers completely on its own. Cells don't share anything important with each other, so a failure inside one cell can't spread to the others. To handle more load you add more cells rather than making any one cell bigger. Each cell is a full, small copy of the service - its own compute, storage, queues, and routing - kept small enough that a team can run and reason about it as a single unit.
The first reason to build this way: one giant system eventually spends too much of its effort just keeping itself in sync. As it grows, the housekeeping to keep every machine in step - agreeing on who is in charge, sharing status, pushing out settings - grows faster than the useful work it can do. Past a point, more of the system's capacity goes into this coordination than into serving requests. Cells cap that by never letting any one cell get big enough to reach the wall. The whole system still grows, by adding cells, while each cell stays small and manageable.
The second reason is failure isolation. In one big system, a bad deploy, a poisoned cache, a corrupted index, or one badly-behaved customer can hurt everyone. With cells, the same problem only touches the cell it happened in. The blast radius - how far a single failure can reach - is limited to the customers in that one cell. This helps most when trouble comes from a single customer - a lopsided data key, an unusually heavy query, a sudden traffic spike. The cell holding that customer takes the hit, while every other cell keeps running normally.
Cells don't all have to be identical. When a few customers are very different, such as a handful of very large ones, you can give them their own cell tuned for that heavier load. In big systems, cells often differ in size, isolation, and which customers they hold. The through-line is that a cell is the unit of three things at once:
- capacity - you add cells to grow
- isolation - a failure stops at the cell wall
- operation - the cell is the piece you run and reason about
When it applies
Tradeoffs
The same move, 3 ways
Every row is a production system that bet on this pattern — the note says how, in that system's own terms.
Often used together
Patterns sharing breakdowns with this one — derived from co-occurrence, threshold ≥2 shared.
Problems this pattern answers
The walls where its breakdowns live — each opens the cross-company comparison.