The book Distributed systems: for fun and profit