Eventual consistency needs careful design:
Read-your-writes: After you write, you see your own write. Others might not, yet. Implemented by routing reads to the same replica that received the write.
Monotonic reads: Once you see a value, you won't see an older value. Implemented by sticking to the same replica.
Conflict resolution:
- Last-write-wins: Simple but loses data
- Vector clocks: Track causality, merge conflicts
- CRDTs: Data structures that merge automatically
The key insight: "Eventually" might be milliseconds or minutes. Design for the worst case, but tune for the common case.