# System Design

### Books

* [Designing Data-Intensive Applications](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321) by Martin Kleppmann

### Papers

* [End-to-End Arguments in System Design](http://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf) - Saltzer et al., 1984
* [Dynamo: Amazon’s Highly Available Key-value Store](https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf) - DeCandia et al., 2007
* [Replicated Data Consistency Explained Through Baseball](https://www.microsoft.com/en-us/research/wp-content/uploads/2011/10/ConsistencyAndBaseballReport.pdf)&#x20;

### Talks

* [Systems and Machine Learning Symbiosis](https://www.youtube.com/watch?v=Nj6uxDki6-0\&list=PLV_y3KEwRVb__JTpb1w3ACp94k5vYStkT\&index=12\&t=1793s) by Jeff Dean&#x20;
* [Applying the Saga Pattern](https://www.youtube.com/watch?v=xDuwrtwYHu8\&list=PLV_y3KEwRVb__JTpb1w3ACp94k5vYStkT\&index=18)  by Caitie McCaffrey
* [CRDTs and the Quest for Distributed Consistency](https://www.youtube.com/watch?v=B5NULPSiOGw\&t=2166s) by Martin Kleppmann
* [Achieving Rapid Response Times in Large Online Services](https://www.youtube.com/watch?v=1-3Ahy7Fxsc\&t=506s) by Jeff Dean
* [Building Software Systems At Google and Lessons Learned](https://www.youtube.com/watch?v=modXC5IWTJI) by Jeff Dean
* [Practical Load Balancing with Consistent Hashing](https://www.youtube.com/watch?v=jk6oiBJxcaA\&list=PLV_y3KEwRVb8IGhpPATpaUKzUUliwizEJ\&index=2\&t=1585s) by Andrew Rodland

### Blog post

* [CAP Twelve Years Later: How the “Rules” Have Changed ](http://alchem.usc.edu/courses-ee599/downloads/T_CO2_CAP12YearsLater.pdf)
* [Please stop calling databases CP or AP](https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html)&#x20;
* [You Can’t Sacrifice Partition Tolerance](https://codahale.com/you-cant-sacrifice-partition-tolerance/)
* [FLP and CAP aren't the same thing](https://www.the-paper-trail.org/post/2012-03-25-flp-and-cap-arent-the-same-thing/)
* [The Log: What every software engineer should know](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying)
* [A one size fits all database doesn't fit anyone](https://www.allthingsdistributed.com/2018/06/purpose-built-databases-in-aws.html)
* [How does a relational database work?](http://coding-geek.com/how-databases-work/)
