# 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/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xzhu0027.gitbook.io/blog/misc/index/system-design.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
