Consistency Models in Distributed Systems