From 20818b72f5a7033ba1cb2a5d7f768e26af9e4339 Mon Sep 17 00:00:00 2001
From: Ashish Pratap Singh
Date: Sun, 24 Mar 2024 15:13:03 -0700
Subject: [PATCH] Segregate fundamentals into key concepts and building blocks
---
README.md | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)
diff --git a/README.md b/README.md
index 86ff995..25a588f 100644
--- a/README.md
+++ b/README.md
@@ -6,29 +6,39 @@
This repository contains resources to learn System Design concepts and prepare for interviews using free resources.
-## System Design Fundamentals
+## System Design Key Concepts
- [Scalability](https://newsletter.ashishps.com/p/scalability)
-- [Horizontal vs Vertical Scaling](https://www.spiceworks.com/tech/cloud/articles/horizontal-vs-vertical-cloud-scaling/)
- [Latency vs Throughput](https://aws.amazon.com/compare/the-difference-between-throughput-and-latency/)
-- [Databases](https://newsletter.ashishps.com/p/15-types-of-databases-and-when-to)
-- [Content Delivery Network (CDN)](https://www.cloudflare.com/learning/cdn/what-is-a-cdn/)
-- [Caching](https://medium.com/must-know-computer-science/system-design-caching-acbd1b02ca01)
-- [Distributed Caching](https://redis.com/glossary/distributed-caching/)
- [CAP Theorem](https://www.bmc.com/blogs/cap-theorem/)
-- [Load Balancing](https://aws.amazon.com/what-is/load-balancing/)
- [ACID Transactions](https://redis.com/glossary/acid-transactions/)
-- [SQL vs NoSQL](https://www.integrate.io/blog/the-sql-vs-nosql-difference/)
- [Consistent Hashing](https://arpitbhayani.me/blogs/consistent-hashing/)
-- [Database Index](https://www.progress.com/tutorials/odbc/using-indexes)
- [Rate Limiting](https://www.imperva.com/learn/application-security/rate-limiting/)
- [Microservices Architecture](https://medium.com/hashmapinc/the-what-why-and-how-of-a-microservices-architecture-4179579423a9)
-- [Microservices Guidelines](https://newsletter.systemdesign.one/p/netflix-microservices)
- [API Design](https://abdulrwahab.medium.com/api-architecture-best-practices-for-designing-rest-apis-bf907025f5f)
- [Strong vs Eventual Consistency](https://hackernoon.com/eventual-vs-strong-consistency-in-distributed-databases-282fdad37cf7)
-- [Consistency Patterns](https://systemdesign.one/consistency-patterns/)
- [Synchronous vs. asynchronous communications](https://www.techtarget.com/searchapparchitecture/tip/Synchronous-vs-asynchronous-communication-The-differences)
- [REST vs RPC](https://aws.amazon.com/compare/the-difference-between-rpc-and-rest/)
- [Batch Processing vs Stream Processing](https://atlan.com/batch-processing-vs-stream-processing/)
+- [Fault Tolerance](https://www.cockroachlabs.com/blog/what-is-fault-tolerance/)
+- [Consensus Algorithms](https://medium.com/@sourabhatta1819/consensus-in-distributed-system-ac79f8ba2b8c)
+- [Gossip Protocol](http://highscalability.com/blog/2023/7/16/gossip-protocol-explained.html)
+- [Serverless Architecture](https://www.datadoghq.com/knowledge-center/serverless-architecture/)
+- [Service Discovery](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/)
+- [Disaster Recovery](https://cloud.google.com/learn/what-is-disaster-recovery)
+- [Distributed Tracing](https://www.dynatrace.com/news/blog/what-is-distributed-tracing/)
+- [Top 15 Tradeoffs](https://newsletter.ashishps.com/p/system-design-top-15-trade-offs)
+
+## System Design Building Blocks
+- [Horizontal vs Vertical Scaling](https://www.spiceworks.com/tech/cloud/articles/horizontal-vs-vertical-cloud-scaling/)
+- [Databases](https://newsletter.ashishps.com/p/15-types-of-databases-and-when-to)
+- [Content Delivery Network (CDN)](https://www.cloudflare.com/learning/cdn/what-is-a-cdn/)
+- [Domain Name System (DNS)](https://www.cloudflare.com/learning/dns/what-is-dns/)
+- [Caching](https://medium.com/must-know-computer-science/system-design-caching-acbd1b02ca01)
+- [Distributed Caching](https://redis.com/glossary/distributed-caching/)
+- [Load Balancing](https://aws.amazon.com/what-is/load-balancing/)
+- [SQL vs NoSQL](https://www.integrate.io/blog/the-sql-vs-nosql-difference/)
+- [Database Index](https://www.progress.com/tutorials/odbc/using-indexes)
+- [Consistency Patterns](https://systemdesign.one/consistency-patterns/)
- [HeartBeat](https://martinfowler.com/articles/patterns-of-distributed-systems/heartbeat.html)
- [Circuit Breaker](https://medium.com/geekculture/design-patterns-for-microservices-circuit-breaker-pattern-276249ffab33)
- [Idempotency](https://blog.dreamfactory.com/what-is-idempotency/)
@@ -36,23 +46,15 @@ This repository contains resources to learn System Design concepts and prepare f
- [Data Replication](https://redis.com/blog/what-is-data-replication/)
- [Data Redundancy](https://www.egnyte.com/guides/governance/data-redundancy)
- [Database Sharding](https://www.mongodb.com/features/database-sharding-explained#)
-- [Fault Tolerance](https://www.cockroachlabs.com/blog/what-is-fault-tolerance/)
+- [Microservices Guidelines](https://newsletter.systemdesign.one/p/netflix-microservices)
- [Failover](https://avinetworks.com/glossary/failover/)
- [Proxy Server](https://www.fortinet.com/resources/cyberglossary/proxy-server)
-- [Domain Name System (DNS)](https://www.cloudflare.com/learning/dns/what-is-dns/)
- [Message Queues](https://medium.com/must-know-computer-science/system-design-message-queues-245612428a22)
- [WebSockets](https://www.pubnub.com/guides/websockets/)
- [Bloom Filters](https://www.enjoyalgorithms.com/blog/bloom-filter)
-- [Consensus Algorithms](https://medium.com/@sourabhatta1819/consensus-in-distributed-system-ac79f8ba2b8c)
-- [Gossip Protocol](http://highscalability.com/blog/2023/7/16/gossip-protocol-explained.html)
- [API Gateway](https://www.nginx.com/learn/api-gateway/)
-- [Serverless Architecture](https://www.datadoghq.com/knowledge-center/serverless-architecture/)
-- [Service Discovery](https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/)
-- [Disaster Recovery](https://cloud.google.com/learn/what-is-disaster-recovery)
- [Distributed Locking](https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html)
-- [Distributed Tracing](https://www.dynatrace.com/news/blog/what-is-distributed-tracing/)
- [Checksum](https://www.lifewire.com/what-does-checksum-mean-2625825)
-- [Top 15 Tradeoffs](https://newsletter.ashishps.com/p/system-design-top-15-trade-offs)
### [System Design Interview Template](interview-template.md)