Replication = same data, multiple nodes. You do it for three reasons: to survive node failures, serve reads from nearby replicas, or spread load. Simple enough. The algorithm you pick, though, is where things get complicated. It decides how writes propagate, what breaks during failures, and how honest your consistency guarantees actually are. Three main approaches exist. Here's how each one works, where it hurts, and what that pain actually looks like in production.