Scalability Basics
Scalability Basics¶
Overview¶
This document covers the core concepts of system Scalability. You'll learn the differences between vertical and horizontal scaling, Stateless vs Stateful architectures, and important theories for distributed systems like CAP theorem and PACELC.
Difficulty: ββ Estimated Study Time: 2-3 hours Prerequisites: 01_System_Design_Overview.md
Table of Contents¶
- What is Scalability?
- Vertical Scaling vs Horizontal Scaling
- Stateless vs Stateful
- Session Management Methods
- CAP Theorem
- PACELC Theory
- Practice Problems
- Next Steps
- References
1. What is Scalability?¶
1.1 Definition¶
Scalability is a system's ability to add resources to handle increasing load.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β What is Scalability? β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β "The ability for a system to grow" β
β β
β Traffic Growth β
β ββββββ ββββββ ββββββ ββββββ ββββββ β
β β1000β β10K β β100Kβ β1M β β10M β User Count β
β ββββ¬ββ ββββ¬ββ ββββ¬ββ ββββ¬ββ ββββ¬ββ β
β β β β β β β
β βΌ βΌ βΌ βΌ βΌ β
β ββββββββββββββββββββββββββββββββββββββββββ β
β β Can the system handle this? β β
β ββββββββββββββββββββββββββββββββββββββββββ β
β β
β Good Scalability = Linear performance improvement with β
β resource addition β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1.2 Measuring Load¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Load Measurement Metrics β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Requests Per Second β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Web server: HTTP requests/sec β β
β β β’ Database: Queries/sec (QPS) β β
β β β’ API: API calls/sec β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 2. Concurrent Users β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Number of simultaneously connected users β β
β β β’ Important for WebSocket, streaming services β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 3. Data Volume β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Amount of data to store β β
β β β’ Read/write ratio β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 4. Complexity β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Processing time per request β β
β β β’ Number of dependencies β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2. Vertical Scaling vs Horizontal Scaling¶
2.1 Vertical Scaling (Scale Up)¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Vertical Scaling (Scale Up) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β "Upgrade to more powerful hardware" β
β β
β Before After β
β ββββββββββββββββββ ββββββββββββββββββ β
β β Server β β Server β β
β β ββββββββββββ β β ββββββββββββ β β
β β β CPU: 4coresβ β βββΆ β β CPU: 32coresβ β
β β β RAM: 16GB β β β β RAM: 256GBβ β β
β β β SSD: 500GBβ β β β SSD: 4TB β β β
β β ββββββββββββ β β ββββββββββββ β β
β ββββββββββββββββββ ββββββββββββββββββ β
β β
β Pros: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Simple implementation (no code changes) β β
β β β’ Easy to maintain data consistency β β
β β β’ Simple management β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Cons: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Hardware limits exist (can't scale infinitely) β β
β β β’ Costs increase rapidly (2x performance β 2x cost) β β
β β β’ Single point of failure (SPOF) β β
β β β’ Downtime during upgrades β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.2 Horizontal Scaling (Scale Out)¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Horizontal Scaling (Scale Out) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β "Add more servers" β
β β
β Before After β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β βServerβ βServerβ βServerβ βServerβ β
β β 1 β βββΆ β 1 β β 2 β β 3 β β
β ββββββββ ββββββββ ββββββββ ββββββββ β
β β β β β
β βββββββΌββββββ β
β β β
β ββββββββββββββββ β
β βLoad Balancer β β
β ββββββββββββββββ β
β β
β Pros: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Theoretically infinite scaling β β
β β β’ Cost effective (use commodity hardware) β β
β β β’ High availability (failure β other servers handle) β β
β β β’ Zero-downtime scaling possible β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Cons: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Increased architecture complexity β β
β β β’ Difficult data consistency management β β
β β β’ Session/state management required β β
β β β’ Complex operations/monitoring β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2.3 Comparison Summary¶
| Item | Vertical Scaling | Horizontal Scaling |
|---|---|---|
| Method | More powerful server | More servers |
| Scaling Limit | Hardware limits | Theoretically infinite |
| Cost | Exponential increase | Linear increase |
| Complexity | Low | High |
| Availability | SPOF risk | High availability |
| Downtime | Required for upgrades | Zero-downtime possible |
| Suitable For | Early stage, small scale | Large scale, distributed |
2.4 Practical Application Examples¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Choosing Scaling Strategy β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Suitable for Vertical Scaling: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Startup early stage β β
β β β’ Single database (RDB) β β
β β β’ Legacy systems with complex state management β β
β β β’ When architecture changes are difficult due to β β
β β cost/time constraints β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Suitable for Horizontal Scaling: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Large-scale traffic handling β β
β β β’ Stateless web servers β β
β β β’ Microservices architecture β β
β β β’ Cloud environments (Auto Scaling) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Hybrid Approach: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Web servers: Horizontal scaling β β
β β β’ Database: Vertical scaling + Replication β β
β β β’ Cache: Horizontal scaling (Redis Cluster) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3. Stateless vs Stateful¶
3.1 Stateful Architecture¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stateful Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β "Server stores client state" β
β β
β User A ββββΆ Server 1 (Stores session A) β
β User B ββββΆ Server 2 (Stores session B) β
β User C ββββΆ Server 1 (Stores session C) β
β β
β Problem scenarios: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β 1. What if User A is routed to Server 2? β β
β β β β
β β User A ββββΆ Server 2 βββΆ "No session!" (Logged out) β β
β β β β
β β 2. What if Server 1 goes down? β β
β β β β
β β User A, C ββββΆ ??? βββΆ "Session lost!" (Logged out) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Sticky Session needed: β
β βββββββββββββββββββ β
β β Load Balancer β β
β β (Sticky) β β
β β User A β S1 β β
β β User B β S2 β β
β βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3.2 Stateless Architecture¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Stateless Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β "Server doesn't store state" β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β All state in external storage! β β
β β β β
β β βββββββββββββββ β β
β β Users ββββΆ β Load β ββββΆ βββββββββ β β
β β β Balancer β βServer1β β β
β β βββββββββββββββ ββββΆ βServer2β β β
β β ββββΆβServer3β β β
β β βββββ¬ββββ β β
β β β β β
β β βΌ β β
β β ββββββββββββββββββ β β
β β β Session Store β β β
β β β (Redis/DB) β β β
β β ββββββββββββββββββ β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Pros: β
β β’ Same handling regardless of which server β
β β’ Free to add/remove servers β
β β’ Server failures don't affect other users β
β β’ Suitable for Auto Scaling β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3.3 Comparison¶
| Item | Stateful | Stateless |
|---|---|---|
| State Storage | Server memory | External storage |
| Scalability | Limited | Excellent |
| Complexity | Low | External storage management needed |
| Failure Recovery | Session loss | Quick recovery |
| Load Balancing | Sticky Session needed | Free distribution |
| Suitable For | Simple systems | Large-scale distributed systems |
4. Session Management Methods¶
4.1 Session Management Options¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Session Management Methods β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β 1. Sticky Session (Session Affinity) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β βββββββββββββββ β β
β β User A ββββββββββΆβ LB: AβS1 ββββββββββββΆ Server 1 β β
β β (Cookie: S1) β BβS2 β β β
β β User B ββββββββββΆβ CβS1 ββββββββββββΆ Server 2 β β
β β (Cookie: S2) βββββββββββββββ β β
β β β β
β β Pros: Simple implementation β β
β β Cons: Load imbalance, session loss on server failure β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 2. Session Replication β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β Server 1 ββββββΆβ Server 2 ββββββΆβ Server 3 β β β
β β β Ses A,B,Cβ β Ses A,B,Cβ β Ses A,B,Cβ β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β² β² β² β β
β β ββββββββββββββββ΄βββββββββββββββ β β
β β (Synchronization) β β
β β β β
β β Pros: Easy failure recovery β β
β β Cons: Sync overhead, limited scalability β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 3. Centralized Session Store β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β ββββββββββββ β β
β β β Server 1 ββββ β β
β β ββββββββββββ β βββββββββββββββββ β β
β β ββββββββββββ βββββββΆβ Redis/ β β β
β β β Server 2 ββββ€ β Memcached β β β
β β ββββββββββββ β β (Sessions) β β β
β β ββββββββββββ β βββββββββββββββββ β β
β β β Server 3 ββββ β β
β β ββββββββββββ β β
β β β β
β β Pros: Excellent scalability, stateless servers β β
β β Cons: Additional infrastructure, network latency β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β 4. Client-Side Session (JWT) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Client βββββββββΆ JWT Token (contains session info) β β
β β β β β
β β ββββΆ Send token with each request βββΆ Server verifies β β
β β β β
β β Pros: No server storage, best scalability β β
β β Cons: Token size limit, difficult token invalidation β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4.2 Session Management Method Comparison¶
| Method | Scalability | Complexity | Failure Recovery | Recommended Situation |
|---|---|---|---|---|
| Sticky Session | Low | Low | Difficult | Small scale |
| Session Replication | Medium | High | Good | Medium scale |
| Centralized Store | High | Medium | Good | Large scale |
| JWT | Highest | Medium | N/A | API servers |
5. CAP Theorem¶
5.1 What is CAP Theorem?¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CAP Theorem β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Distributed systems cannot simultaneously satisfy all 3: β
β β
β Consistency β
β C β
β /\ β
β / \ β
β / \ β
β /Cannot \ β
β / have 3 \ β
β /____________\ β
β A P β
β Availability Partition β
β Tolerance β
β β
β Since network partitions (P) are unavoidable: β
β In reality, must choose between C and A! β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
5.2 Meaning of Each Property¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CAP Properties Detail β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Consistency β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β "All nodes see the same data" β β
β β β β
β β Client βββΆ Write X=5 βββΆ Node A β β
β β β β β
β β (Synchronize) β β
β β βΌ β β
β β Client βββΆ Read X ββββΆ Node B βββΆ X=5 (always) β β
β β β β
β β Example: Bank account balance β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Availability β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β "All requests receive a response" (success/failure) β β
β β β β
β β Client βββΆ Request βββΆ System βββΆ Response (always) β β
β β β β
β β Must respond even during failures β β
β β Example: Social media feed β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Partition Tolerance β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β "System operates despite network partitions" β β
β β β β
β β ββββββββ X ββββββββ β β
β β βNode AβββββββββββXβββββββββββNode Bβ β β
β β ββββββββ (Network split) ββββββββ β β
β β β β
β β Service continues even when partitioned β β
β β Can't give up P in distributed systems! β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
5.3 CP vs AP Choice¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CP vs AP Systems β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β CP (Consistency + Partition Tolerance) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β During network partition: β β
β β β’ Make some nodes unavailable to ensure consistency β β
β β β’ Sacrifice availability β β
β β β β
β β Examples: β β
β β β’ Banking systems (balance accuracy critical) β β
β β β’ MongoDB, HBase, Redis (single) β β
β β β’ Zookeeper, etcd β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β AP (Availability + Partition Tolerance) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β During network partition: β β
β β β’ All nodes can respond β β
β β β’ Some data may temporarily be inconsistent β β
β β β’ Eventual Consistency β β
β β β β
β β Examples: β β
β β β’ Social media (like counts) β β
β β β’ DNS β β
β β β’ Cassandra, DynamoDB, CouchDB β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
5.4 Real System Classification¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CAP Classification by System β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Consistency β
β β² β
β β β
β MongoDB ββββββΌβββββ MySQL β
β HBase β PostgreSQL β
β Redis β (Single node: CA) β
β Zookeeper β β
β etcd β β
β β β
β β β
β βββββββββββββββ βΌ ββββββββββββββββββββββΆ Availability β
β β β
β β Cassandra β
β β DynamoDB β
β β CouchDB β
β β Riak β
β β β
β β β
β Partition Tolerance β
β (Required for distributed systems) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
6. PACELC Theory¶
6.1 What is PACELC?¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PACELC Theory β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β CAP extension: Also considers trade-offs during normal state β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β IF Partition: β β
β β Choose between Availability and Consistency β β
β β (P β A or C) β β
β β β β
β β ELSE (normal state): β β
β β Choose between Latency and Consistency β β
β β (E β L or C) β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PACELC = (P)artition β (A)vailability vs (C)onsistency β
β (E)lse β (L)atency vs (C)onsistency β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β β
β β Network partition? β β
β β β β β
β β βββββ΄ββββ β β
β β β β β β
β β Yes No β β
β β β β β β
β β βΌ βΌ β β
β β A vs C L vs C β β
β β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
6.2 PACELC System Classification¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PACELC System Classification β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β PA/EL (Availability + Low latency preference) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Cassandra (without Quorum) β β
β β β’ DynamoDB β β
β β Partition: maintain availability, Normal: fast response β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PC/EC (Consistency priority) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ MongoDB (default) β β
β β β’ HBase β β
β β β’ Zookeeper β β
β β Partition: maintain consistency, Normal: maintain β β
β β consistency (accept latency) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PA/EC (Availability + Consistency) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ PNUTS (Yahoo) β β
β β Partition: maintain availability, Normal: maintain β β
β β consistency β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PC/EL (Consistency + Low latency) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β’ Cassandra (with Quorum) β β
β β Partition: maintain consistency, Normal: fast response β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
6.3 Selection Guide¶
| Requirement | Recommended | Example Systems |
|---|---|---|
| Data accuracy critical | PC/EC | Finance, inventory management |
| Fast response critical | PA/EL | Social media, games |
| Balanced | PA/EC or PC/EL | General web services |
7. Practice Problems¶
Problem 1: Choose Scaling Method¶
Choose appropriate scaling method for these scenarios.
a) Early startup, 1,000 daily users b) Large e-commerce, 10x traffic on Black Friday c) Database handling complex analytics queries d) CDN edge servers
Problem 2: Stateless Design¶
Design shopping cart feature for stateless architecture. Where to store sessions and why?
Problem 3: CAP Choice¶
Should you choose CP or AP for these services? Explain why.
a) Bank transfer system b) Facebook like count c) Online booking system d) DNS server
Problem 4: PACELC Analysis¶
Which PACELC combination would you choose for a system with these requirements?
Conditions: - Global service (multiple regions) - Read latency < 100ms required - Data loss unacceptable
Answers¶
Problem 1 Answer¶
a) Vertical scaling - Small scale, so simple approach is efficient b) Horizontal scaling - Elastic response with Auto Scaling c) Vertical scaling - Analytics queries are efficient on single node d) Horizontal scaling - Geographic distribution needed
Problem 2 Answer¶
Recommendation: Redis (Centralized Session Store)
Reasons:
1. Stateless web servers - same handling regardless of server
2. Fast read/write - frequent cart lookups/updates
3. TTL support - automatic cart expiration
4. Easy failure recovery - Redis Sentinel/Cluster
Alternatives:
- JWT: Cart size limit, need new token per update
- DB: Possible but slower than Redis
Problem 3 Answer¶
a) CP - Balance accuracy more important than availability b) AP - Service must continue even if like counts differ temporarily c) CP - Prevent double booking (strong consistency) d) AP - Responding with stale info better than not responding
Problem 4 Answer¶
Recommendation: PC/EL or PA/EC
Analysis:
- Global service β P required
- Read latency < 100ms β L (low latency) important
- Data loss unacceptable β C (consistency) important
PC/EL choice:
- Partition: maintain consistency (some requests may fail)
- Normal: fast reads
PA/EC choice:
- Partition: maintain availability + sync later
- Normal: strong consistency
Practical implementation:
- Reads: Local replicas (L)
- Writes: Synchronous replication (C)
- Cassandra + LOCAL_QUORUM
8. Next Steps¶
Now that you understand scalability basics, learn about network-related system design elements.
Next Lesson¶
- 03_Network_Fundamentals_Review.md - DNS, CDN, HTTP/2/3
Related Lessons¶
- 04_Load_Balancing.md - Core of horizontal scaling
- 07_Distributed_Cache_Systems.md - Session storage
Recommended Practice¶
- Run multiple server instances locally
- Set up Redis as session store
- Analyze whether services you use are CP or AP
9. References¶
Books¶
- Designing Data-Intensive Applications - Martin Kleppmann (Chapter 5, 9)
Papers¶
- "Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services" (2002)
- "Consistency Tradeoffs in Modern Distributed Database System Design" (PACELC)
Online Resources¶
Document Information - Last Updated: 2024 - Difficulty: ββ - Estimated Study Time: 2-3 hours