Distilled guidance from "Designing Data-Intensive Applications" (Kleppmann, 2nd ed) chapters 6-7 on replication topologies, sharding strategies, conflict resolution, and request routing for distributed data systems.
Use this skill when:
- Choosing a replication topology (single-leader, multi-leader, leaderless)
- Designing a sharding scheme (range vs hash, multi-tenant, hot keys)
- Resolving write conflicts in distributed databases
- Building offline-first / sync-engine apps
- Designing global secondary indexes for sharded systems
- Diagnosing replication lag, stale reads, or hot-shard problems