Balancing Efficiency in Distributed Systems: Eventual Consistency