Segregate fundamentals into key concepts and building blocks

This commit is contained in:
Ashish Pratap Singh
2024-03-24 15:13:03 -07:00
committed by GitHub
parent 7a509d06d8
commit 20818b72f5

View File

@@ -6,29 +6,39 @@
</p>
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)
<img src="diagrams/interview-template.png" width="400" height="250">