Trade-offs in Distributed Systems - Waytoeasylearn