CAP ยท Consensus

Distributed Systems

Designing at scale means trading off consistency, availability, and partition tolerance, and using replication, sharding, and consensus to meet goals.

๐Ÿ“˜ Overview

Distributed systems coordinate multiple nodes over unreliable networks. Latency, partial failures, and partitions are the norm, requiring careful consistency and availability designs.

๐Ÿ“š Fundamentals

๐Ÿ› ๏ธ Guides

Consistency Models

Design Patterns

๐ŸŒ Applications

๐Ÿงช Examples

โ“ Frequently Asked Questions

1) Does CAP forbid strong systems?
No; under no partition, you can have both. Under partition, you must choose.
2) Paxos vs Raft?
Equivalent properties; Raft is often simpler to implement.
3) Exactly-once delivery?
Achieved via idempotency and deduplication semantics.
4) Clock sync?
Use logical/Hybrid clocks; do not depend on perfect NTP.
5) Hot partitions?
Mitigate with better keys, load-aware routing, or rebalancing.
6) Multi-region writes?
Conflict-free replicated data types (CRDTs) or operational transforms.
7) Testing failures?
Chaos engineering to exercise partitions and node loss.
8) Backpressure?
Control producer rates to protect downstream services.
9) Data migrations?
Dual writing and read routing during cutovers.
10) Observability?
Tracing, metrics, and logs across services and requests.