AWESOME System Design
Contents
Articles
Introduction / Interviews
-
System Design Primer [109k ⭐] - Awesome compilation of resources, including Anki flashcard decks.
-
System Design Interview Questions - Concepts you should know - A curated list of topics to introduce you to system design.
-
Grokking the System Design Interview (PAID) - Grokking System Design preparation is one of the most talked about course. The best thing about it is the design of applications it suggests rather than explanations of what each tool is supposed to do.
-
System Design in Software Development - Basic article on the topics of system design and architecture.
-
Everything you need to know about Design System - Another introductory article written in a friendly way.
-
System Design - Introductory interview preparation resources
-
Design Pattern for Distributed Systems - Article talking about some patterns as well as some technologies to be considered.
Advanced
-
Distributed Computing - Wikipedia article broadening the view of distributed system design.
-
Fallacies of Distributed Computing - Wikipedia article introducing the topic of fallacies of distributed computing and its effects.
-
Fallacies of Distributed Computing Explained - In depth explanation of the fallacies mentioned above.
-
CAP Theorem - IBM Article about CAP Theorem, Microservices and NoSQL DBs.
-
Pattern: Microservice Architecture - Good article talking about Microservice architecture as well as its drawbacks.
-
Taxonomy of Distributed Systems - 11 Page lecture classifying distributed systems and specifically why we need them.
-
Top 10 Secure Coding Practices - Brief article talking about good practices for code securities.
-
Scalable Web Architecture and Distributed Systems - Good article about distributed systems as well as some of the potential tools.
Books
-
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services - Book that talks about disitributed systems as well as lightly demonstrating some code of what it looks like.
-
Designing Data Intensive Applications - Goes in depth to explain various resources we use when working with distributed systems, as well as how it came to be and what problems it aims to solve.