The middle path
Fully synchronous replication is fragile because any slow follower blocks every write. Fully asynchronous risks losing confirmed data. Semi synchronous replication blends the two.
In this scheme, the leader waits for exactly one follower to confirm a write, then acknowledges the client. The remaining followers receive the change asynchronously.
Why this helps
- It guarantees that every acknowledged write lives on at least two nodes, so a single leader crash loses nothing.
- It avoids waiting for the slowest follower, since only one confirmation is required.
- If the synchronous follower falls behind, the system can promote another follower into the synchronous slot to keep going.
The catch
If the one synchronous follower becomes unreachable and no replacement exists, the system must either block writes to preserve the guarantee or quietly fall back to asynchronous, which reopens the data loss window.
Key idea
Semi synchronous replication keeps just one follower in lockstep to gain durability without paying for every node to confirm.