diff --git a/README.md b/README.md index 0e3c8aa..6296e47 100644 --- a/README.md +++ b/README.md @@ -491,3 +491,43 @@ Check out the following links to get a better idea of what to expect: ### Source(s) and further reading * [kilimchoi/engineering-blogs](https://github.com/kilimchoi/engineering-blogs) + +## System design topics: start here + +New to system design? + +First, you'll need a basic understanding of common principles, learning about what they are, how they are used, and their pros and cons. + +### Step 1: Review the scalability video lecture + +[Scalability Lecture at Harvard](https://www.youtube.com/watch?v=-W9F__D3oY4) + +* Topics covered: + * Vertical scaling + * Horizontal scaling + * Caching + * Load balancing + * Database replication + * Database partitioning + +### Step 2: Review the scalability article + +[Scalability](http://www.lecloud.net/tagged/scalability) + +* Topics covered: + * [Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones) + * [Databases](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database) + * [Caches](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache) + * [Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism) + +### Next steps + +Next, we'll look at high-level trade-offs: + +* **Performance** vs **scalability** +* **Latency** vs **throughput** +* **Availability** vs **consistency** + +Keep in mind that **everything is a trade-off**. + +Then we'll dive into more specific topics such as DNS, CDNs, and load balancers.