Skip to main content

System Design

Common Components in System Design

·540 words·3 mins
Designing scalable and reliable systems requires understanding a core set of reusable building blocks. This article covers the most common components — from load balancers and databases to caches and CDNs — and the key trade-offs to consider when using them. Load Balancer with Multiple Web Servers and Auto Scaling # A load balancer distributes incoming traffic across multiple web servers, providing a single public entry point to the system.

RDBMS, NoSQL, ACID, CAP theorem, and Scaling

·592 words·3 mins
RDBMS # Relational Database Management System Used when there are strong Relations between data: Design a schema that is unlikely to change, relating tables to each other, then you can retrieve the desired data through SQL. Used when data correctness is very important: Usually provides ACID properties. Changing the schema is a huge undertaking: Requires updating the table schema and migrating data. All programs that use the table with the changed schema need to be modified. join operations can be performed across different tables.