System Design: Eventual Consistency in Distributed Systems