A somewhat-curated reading list
- Designing Data-Intensive Applications: The Big Ideas behind Reliable, Scalable, and Maintainable Systems.
- Network Programming with Go: Code Secure and Reliable Network Services from Scratch
- Beej’s Guide to Network Programming Using Internet Sockets
- Borg, Omega, and Kubernetes: Lessons learned from three container-management systems over a decade
- On the Criteria To Be Used in Decomposing Systems into Modules
- Dynamo: Amazon’s Highly Available Key-value Store
- On Designing and Deploying Internet-Scale Services
- Fallacies of Distributed Systems
- Learning Containers From The Bottom Up
- Fsync-gate
- The Chubby lock service for loosely-coupled distributed systems
- Microservice architecture style # Best Practices
- How NAT traversal works
- The perils of the “real” client IP
- Omega: flexible, scalable schedulers for large compute clusters
- Large-scale cluster management at Google with Borg
- Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
- 20 Things I’ve Learned in my 20 Years as a Software Engineer
- The Google File System
- Packet Order Matters! Improving Application Performance by Deliberately Delaying Packets
- Time, Clocks, and the Ordering of Events in a Distributed System
- Concurrent Programming for Scalable Web Architectures