A Primer to Big Complex Distributed Systems
Building complex systems is an exciting endeavor. There are many aspects to designing such systems, like availability, reliability, scalability, and the tradeoffs that go into them. Scalability itself has many interesting elements worth discussing, like partitioning, replication, and consensus.