From 5e9e21c675fe7e6bf4b466ccbd454b2616379704 Mon Sep 17 00:00:00 2001 From: Donne Martin Date: Sun, 26 Feb 2017 05:11:11 -0800 Subject: [PATCH] Add index section --- README.md | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/README.md b/README.md index 739476e..3343645 100644 --- a/README.md +++ b/README.md @@ -78,3 +78,93 @@ Feel free to submit pull requests to help: Content that needs some polishing is placed [under development](#under-development). Review the [Contributing Guidelines](https://github.com/donnemartin/awesome-aws/blob/master/CONTRIBUTING.md). + +## Index of system design topics + +> Summaries of various system design topics, including pros and cons. **Everything is a trade-off**. +> +> Each section contains links to more in-depth resources. + +![Imgur](http://i.imgur.com/jj3A5N8.png) + +* [System design topics: start here](#system-design-topics-start-here) + * [Step 1: Review the scalability video lecture](#step-1-review-the-scalability-video-lecture) + * [Step 2: Review the scalability article](#step-2-review-the-scalability-article) + * [Next steps](#next-steps) +* [Performance vs scalability](#performance-vs-scalability) +* [Latency vs throughput](#latency-vs-throughput) +* [Availability vs consistency](#availability-vs-consistency) + * [CAP theorem](#cap-theorem) + * [CP - consistency and partition tolerance](#cp-consistency-and-partition-tolerance) + * [AP - availability and partition tolerance](#ap-availability-and-partition-tolerance) +* [Consistency patterns](#consistency-patterns) + * [Weak consistency](#weak-consistency) + * [Eventual consistency](#eventual-consistency) + * [Strong consistency](#strong-consistency) +* [Availability patterns](#availability-patterns) + * [Fail-over](#fail-over) + * [Replication](#replication) +* [Domain name system](#domain-name-system) +* [Content delivery network](#content-delivery-network) + * [Push CDNs](#push-cdns) + * [Pull CDNs](#pull-cdns) +* [Load balancer](#load-balancer) + * [Active-passive](#active-passive) + * [Active-active](#active-active) + * [Layer 4 load balancing](#layer-4-load-balancing) + * [Layer 7 load balancing](#layer-7-load-balancing) + * [Horizontal scaling](#horizontal-scaling) +* [Reverse proxy (web server)](#reverse-proxy-web-server) + * [Load balancer vs reverse proxy](#load-balancer-vs-reverse-proxy) +* [Application layer](#application-layer) + * [Microservices](#microservices) + * [Service discovery](#service-discovery) +* [Database](#database) + * [SQL](#sql) + * [Relational database management system (RDBMS)](relational-database-management-system-rdbms) + * [Scaling SQL](#scaling-sql) + * [Master-slave replication](#master-slave-replication) + * [Federation](#federation) + * [Sharding](#sharding) + * [Denormalization](#denormalization) + * [SQL tuning](#sql-tuning) + * [NoSQL](#nosql) + * [Key-value store](#key-value-store) + * [Document store](#document-store) + * [Wide column store](#wide-column-store) + * [Graph Database](#graph-database) + * [SQL or NoSQL](#sql-or-nosql) +* [Cache](#cache) + * [Client caching](#client-caching) + * [CDN caching](#cdn-caching) + * [Web server caching](#web-server-caching) + * [Database caching](#database-caching) + * [Application caching](#application-caching) + * [Caching at the database query level](#caching-at-the-database-query-level) + * [Caching at the object level](#caching-at-the-object-level) + * [When to update the cache](#when-to-update-the-cache) + * [Cache-aside](#cache-aside) + * [Write-through](#write-through) + * [Write-behind (write-back)](#write-behind-write-back) + * [Refresh-ahead](#refresh-ahead) +* [Asynchronism](#asynchronism) + * [Message queues](#message-queues) + * [Task queues](#task-queues) + * [Back pressure](#back-pressure) +* [Communication](#communication) + * [Transmission control protocol (TCP)](#transmission-control-protocol-tcp) + * [User datagram protocol (UDP)](#user-datagram-protocol-udp) + * [Remote procedure call (RPC)](#remote-procedure-call-rpc) + * [Representational state transfer (REST)](#representational-state-transfer-rest) +* [Security](#security) +* [Appendix](#appendix) + * [Powers of two table](#powers-of-two-table) + * [Latency numbers every programmer should know](#latency-numbers-every-programmer-should-know) +* [Under development](#under-development) + * [Distributed computing](#distributed-computing) + * [Consistent hashing](#consistent-hashing) + * [Scatter gather](#scatter-gather) + * [Contribute](#contributing) +* [Credits](#credits) +* [Contact info](#contact-info) +* [License](#license)