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> </p>
This repository contains resources to learn System Design concepts and prepare for interviews using free resources. 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) - [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/) - [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/) - [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/) - [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/) - [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/) - [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 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) - [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) - [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) - [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/) - [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/) - [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) - [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) - [Circuit Breaker](https://medium.com/geekculture/design-patterns-for-microservices-circuit-breaker-pattern-276249ffab33)
- [Idempotency](https://blog.dreamfactory.com/what-is-idempotency/) - [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 Replication](https://redis.com/blog/what-is-data-replication/)
- [Data Redundancy](https://www.egnyte.com/guides/governance/data-redundancy) - [Data Redundancy](https://www.egnyte.com/guides/governance/data-redundancy)
- [Database Sharding](https://www.mongodb.com/features/database-sharding-explained#) - [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/) - [Failover](https://avinetworks.com/glossary/failover/)
- [Proxy Server](https://www.fortinet.com/resources/cyberglossary/proxy-server) - [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) - [Message Queues](https://medium.com/must-know-computer-science/system-design-message-queues-245612428a22)
- [WebSockets](https://www.pubnub.com/guides/websockets/) - [WebSockets](https://www.pubnub.com/guides/websockets/)
- [Bloom Filters](https://www.enjoyalgorithms.com/blog/bloom-filter) - [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/) - [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 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) - [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) ### [System Design Interview Template](interview-template.md)
<img src="diagrams/interview-template.png" width="400" height="250"> <img src="diagrams/interview-template.png" width="400" height="250">