Home

An introduction to distributed systems by Kyle Kingsbury

12 Aug 2016

I've found very interesting lecture notes on distributed systems written by Kyle Kingsbury https://github.com/aphyr/distsys-class.

Some of the best points:

When possible, try to use a single node instead of a distributed system. Accept that some failures are unavoidable: SLAs and apologies can be cost-effective. To handle catastrophic failure, we use backups. To improve reliability, we introduce redundancy. To scale to large problems, we divide the problem into shards. Immutable values are easy to store and cache, and can be referenced by mutable identies, allowing us to build strongly consistent systems at large scale. As software grows, different components must scale independently, and we break out libraries into distinct services. Service structure goes hand-in-hand with teams.