- Designing Data-Intensive Applications (Kleppmann) — ch. 5
(replication), ch. 6 (partitioning), ch. 9 (consistency/consensus).
The single best treatment.
- Dynamo: Amazon's Highly Available Key-value Store (DeCandia et al.,
2007) — consistent hashing + vnodes, quorums (N/W/R), read-repair,
hinted handoff, anti-entropy.
- Karger et al., Consistent Hashing and Random Trees (1997) — the
original.
- Brewer, CAP; Abadi, PACELC (consistency vs latency, always).
- Vogels, Eventually Consistent; Bailis, Highly Available
Transactions / the "Consistency without consensus" line.
- Jepsen analyses (Cassandra, etcd, Mongo) — consistency claims tested
under partition. https://jepsen.io/analyses
- Cassandra / ScyllaDB (tunable quorums, vnodes), DynamoDB, Riak —
Dynamo-style. etcd / Spanner / CockroachDB — consensus-based strong
consistency (db-17).
- db-16…20 (consensus = the strong-consistency leg), pa-04
(stream partitioning + rebalancing), gw-04 (subsetting ring),
pa-09 (consistency/availability as SLO choices).