“System Design” or “System Architecture” is a very popular term when it comes to job interviews at Big tech companies like Facebook, Google, DELL, Netflix, etc. and some people do find it intimidating. But not anymore. So I have designed a System Design Guide to help you get an in-depth understanding of every concept by teaching you basic software architecture concepts and how to create the system architecture of Large Systems and help you ace the next System Design Interview.
The system design is a systematic approach to designing modules, architecture, interfaces, or APIs to meet the requirement of a specific system. It is the phase where software requirement specification is implemented to design and actual real-time system to scale. A most important aspect of system designing is to create a system that can scale to millions of users.
So, when an interviewer is asking you to design an architecture, what they are actually asking you is to create a system in such a way that if it took to production, it should work. Hence in your System Design interview the majority of the time, you will find yourself optimizing the basic architecture to scale. This can involve performing efficient database querying or caching or using load balancers etc.
I have divided this System Design Guide into two major components -
- System Design Basic Concepts
- Actual System Architecture
This section contains the basic concepts to understand the most important terms related to system architecture designing. This section is will act as a building block.
- Network Protocol
- Load Balancers
- Content Delivery Network (CDN)
- Reverse Proxy
- Message Queue
- Consistent Hashing
- Database Sharding
- CAP Theorem
- SAGA Pattern
This section will teach you how to design actual systems architecture that can work in realtime and scale millions of users at the same time.
- Design Url Shortening Service (ex - bitly)
- Design Pastebin Architecture
- Design Rate Limiter
- Design Instagram Architecture
The architecture of more systems is coming soon.
I'm on twitter @dermayank 🎉🎉
This post was originally published at nlogn. Visit here for more awesome content.