Learn how to design large-scale distributed systems with NoSQL databases, messaging queues and cluster coordination