Distributed Internals
How changes actually propagate: the replication stream, partition functions, quorums, leader election — and a failure simulator you can break.
A replica is a machine that consumes the primary's change log and re-applies it; every property of replication — what a replica can serve, how far behind it is, what a failover loses, whether two primaries can exist — is a statement about positions in that log.
Splitting data across nodes is a pure function from key to node plus the metadata to find it, and every operational property — balance, hot spots, how much moves when a node joins, which queries fan out — is a property of that function.
A distributed database is several machines that each fail independently and cannot tell a slow peer from a dead one; quorums, leader election and consensus exist so that a majority can keep a single history alive through those failures — and every failure has a specific recovery it demands.