Infrastructure Comparisons
Side-by-side trade-offs where neither column wins. The workload, the team and the operational budget decide — and each comparison ends with the verdict that follows from that, not from a preference.
VM vs Container vs ServerlessManaged vs self-hosted databaseObject vs block vs file storageRolling vs blue/green vs canaryActive-passive vs active-activeDeclarative vs imperative infrastructure
Active-passive vs active-active
Two multi-region shapes with very different data problems. The compute is the easy half of both.
| Dimension | Active-passive | Active-active |
|---|---|---|
| Traffic | One region serves; the other waits | Both serve |
| Writes | One region owns them | Either region accepts them |
| Conflict resolution | Not needed | Required, and genuinely hard |
| Latency for distant users | Unimproved — they still cross the ocean | Improved — served locally |
| Failover | A procedure, with an RTO | Mostly routing |
| Idle spend | You pay for a region that serves nothing | Both regions do work |
| What nobody tests | The failover path itself | The conflict cases |
Use Active-passive when
- Regional resilience is the requirement, not latency.
- The data model cannot tolerate concurrent writes in two places.
- You want a comprehensible failure mode.
Use Active-active when
- Users on two continents need local latency.
- The data can be partitioned by region or tolerates eventual convergence.
- You have the operational depth to run it.
Verdict
Active-passive is the honest default: it delivers regional resilience without asking you to solve distributed writes. Move to active-active when latency or scale forces it, and budget for the data work — that is where the cost actually is.
Lessons behind this comparison