My humble attempt at explaining the algorithms used and the trade-offs made in designing the distributed systems that we indirectly use everyday.