A. Philosophy
HLD is not "memorize the architecture of Twitter." HLD is the skill of turning a vague product requirement into a system that meets its scale, reliability and cost constraints, and of explaining why each component exists and what breaks when load or requirements change.
Total: about 70 hours over 7 weeks (10 hours per week), roughly 100 to 110 substantial lessons. Prerequisite: LLD fundamentals (objects, interfaces, dependency direction) and basic programming. Learners who finished the ProgVale LLD path are ready.
B. Phase 1: Foundations and system thinking (weeks 1 to 4)
Week 1: Thinking in systems
Goal: Move from "I know how to build an app" to "I know how to reason about a system under load." Time: about 10 hours, 9 lessons.
Module 1: Requirements, scale and estimation
| # | Lesson | Main outcome |
|---|---|---|
| 1 | What is HLD? | Understand system-level design vs LLD |
| 2 | Functional vs non-functional requirements | Separate what the system does from how well it must do it |
| 3 | Latency, throughput, bandwidth | Reason about performance with real numbers |
| 4 | Availability, reliability, durability | Know the difference and how each is measured (nines, SLO, SLA) |
| 5 | Scalability: vertical vs horizontal | Understand what scaling actually changes |
| 6 | Back-of-envelope estimation | Estimate QPS, storage, bandwidth, memory |
| 7 | Read-heavy vs write-heavy systems | Let the access pattern drive the design |
| 8 | Client-server and request lifecycle | Trace a request from browser to database and back |
| 9 | Single server to distributed system | See why each new component is forced on us |
Small exercises
- Estimate QPS and storage for Twitter-like posting
- Estimate bandwidth for a video platform
- Convert "99.9% availability" into allowed downtime
- Estimate cache size for a read-heavy product catalog
- Estimate servers needed for 10K requests per second
For each exercise, identify: → assumptions → read/write ratio → peak vs average load → storage growth → the bottleneck
Critical exercise Give the learner: "Design a system that serves a profile page to 10 million users." Do not draw boxes first. Ask:
- What is the read/write ratio?
- What is the peak QPS?
- What is the data size per user?
- What fails first when traffic doubles?
- What is the cheapest thing that could possibly work?
This builds the habit of asking numbers-first questions before touching architecture.
Week 2: Networking, APIs and data foundations
Goal: Understand how clients reach systems and how data is stored and accessed. Time: about 10 hours, 9 lessons.
Module 2: Networking and API design
| # | Lesson |
|---|---|
| 10 | DNS, IP, ports |
| 11 | TCP vs UDP, HTTP/1.1, HTTP/2, HTTP/3 |
| 12 | REST API design |
| 13 | gRPC, GraphQL and when to choose each |
| 14 | WebSockets, SSE, long polling |
| 15 | Pagination, filtering, versioning |
| 16 | Idempotency and retry-safe APIs |
| 17 | Authentication vs authorization (sessions, JWT, OAuth overview) |
| 18 | API contracts and backward compatibility |
Worked example Requirement:
Design the API for a ride-booking app. Riders request rides. Drivers accept them. A ride has one driver at a time.
The learner should arrive at something like:
POST /rides (rider creates request, idempotency key)
POST /rides/{id}/accept (driver accepts)
GET /rides/{id} (status polling or push)
Then ask:
- What happens if the client retries
POST /ridesafter a timeout? - Who enforces "one driver at a time"?
- Polling, SSE or WebSocket for status updates, and why?
- What changes if mobile apps cannot update immediately?
This moves the learner from endpoint listing to contract and failure reasoning.
Exercises
- URL Shortener API
- Payment API with idempotency
- Chat API (REST + WebSocket)
- Paginated feed API
Week 3: Data storage
Goal: Learn to choose, model and scale data stores. Time: about 10 hours, 9 lessons.
Module 3: Databases and storage
| # | Lesson |
|---|---|
| 19 | Storage types: relational, key-value, document, wide-column, graph, time-series |
| 20 | Indexing (B-tree, LSM-tree) and query cost |
| 21 | ACID transactions and isolation levels |
| 22 | Data modeling for access patterns |
| 23 | Replication: leader-follower, multi-leader, leaderless |
| 24 | Partitioning and sharding strategies |
| 25 | Consistent hashing |
| 26 | Hot keys, rebalancing, resharding |
| 27 | Choosing a database: decision framework |
Teaching format (applies to every storage topic)
Problem
↓
Single database
↓
Where it hurts (size, load, failure)
↓
Technique (replicate / shard / index / denormalize)
↓
New problems introduced
↓
Improved design
↓
When NOT to apply it
Do not teach "use NoSQL for scale." The learner should feel the pressure that forces each choice.
Worked example Bad design: one MySQL instance holds users, orders, sessions, logs and search. Ask what differs per workload:
- Sessions: tiny, hot, expire quickly
- Orders: relational, transactional
- Logs: append-only, huge
- Search: full-text, ranked
Now polyglot persistence becomes intuitive, along with the cost of operating many stores.
Week 4: Scaling building blocks
Goal: Learn the standard components used to scale and protect systems. Time: about 10 hours, 12 lessons.
Module 4: Building blocks
| # | Lesson |
|---|---|
| 28 | Load balancing: L4 vs L7, algorithms, health checks |
| 29 | Reverse proxy and API gateway |
| 30 | Caching fundamentals: why, where, what |
| 31 | Cache strategies: cache-aside, write-through, write-back |
| 32 | Cache invalidation, eviction, stampede and hot keys |
| 33 | CDN and edge caching |
| 34 | Message queues and why they exist |
| 35 | Pub/sub vs queues; Kafka-style logs |
| 36 | Delivery semantics: at-most, at-least, exactly-once |
| 37 | Backpressure and async processing |
| 38 | Rate limiting algorithms (token bucket, sliding window) |
| 39 | Blob/object storage and file handling |
Phase 1 integration project: Design a URL Shortener At the end of week 4, do not jump into complex systems. Give one open-ended design exercise.
Requirements:
- Create short links, redirect with low latency
- Custom aliases and expiry
- Basic click analytics
- 100M new links per month, 100:1 read/write
The learner must produce:
- Requirements and assumptions
- Estimations
- API
- Data model
- High-level architecture diagram
- Scaling plan (cache, sharding, ID generation)
- Failure discussion
- Trade-offs and what they would change at 10x scale
This combines the first four weeks.
Phase 1 outcome: a strong hold on fundamentals. The learner can take a small product requirement, estimate it, and produce a reasonable architecture.
C. Phase 2: Distributed systems and real HLD (weeks 5 to 7)
Complex systems begin here. The sequencing is deliberate: a learner should understand why distributed systems are hard before assembling one.
Week 5: Distributed systems and architecture patterns
Goal: Understand correctness, failure and the patterns that manage them. Time: about 10 hours.
Do not teach every distributed-systems theorem equally.
Concept tiers
| Tier | Depth | Topics |
|---|---|---|
| 1 | Must know deeply | Replication, partitioning, caching, queues, CAP/PACELC, consistency models, idempotency, retries and timeouts, saga, sharding, load balancing, rate limiting, circuit breaker |
| 2 | Should know | Leader election, quorum, event sourcing, CQRS, outbox pattern, bloom filters, geospatial indexing, search indexing, stream processing |
| 3 | Awareness | Paxos/Raft internals, CRDTs, vector clocks, gossip protocols, two-phase commit internals |
This prevents spending equal time on every academic topic.
Learning order: start with failure, not theory.
Module 5: Distributed systems fundamentals
| # | Lesson | Problem that motivates it |
|---|---|---|
| 40 | Failure modes: crash, partition, slow node | A dependency is slow, not down |
| 41 | Timeouts, retries, exponential backoff, jitter | A retry storm takes down a recovering service |
| 42 | Circuit breaker, bulkhead, graceful degradation | One failing service cascades everywhere |
| 43 | CAP and PACELC | Network partition while serving two regions |
| 44 | Consistency models: strong, eventual, causal, read-your-writes | User posts, refreshes, and the post is gone |
| 45 | Quorum and leader election | Two nodes both believe they are the leader |
| 46 | Distributed transactions: 2PC vs Saga | Order, payment and inventory span three services |
| 47 | Outbox pattern and exactly-once effects | DB write succeeds, event publish fails |
| 48 | Distributed locks and coordination | Two workers process the same job |
| 49 | Unique ID generation (Snowflake, UUID, ticket servers) | Multiple writers need ordered unique IDs |
Module 6: Architecture styles
| # | Lesson | Note |
|---|---|---|
| 50 | Monolith vs modular monolith vs microservices | Teach as a trade-off, not a destination |
| 51 | Service boundaries and ownership | Where to cut, and when not to |
| 52 | Sync vs async service communication | |
| 53 | Event-driven architecture | |
| 54 | CQRS and event sourcing | Teach primarily as trade-offs; most systems do not need it |
| 55 | Search and indexing basics (inverted index) | |
| 56 | Geospatial indexing (geohash, quadtree) | |
| 57 | Stream vs batch processing | |
| 58 | Fan-out on write vs fan-out on read | Feed and notification systems |
| 59 | Multi-region and data locality |
Component lesson structure Every component article contains exactly this structure:
- Problem
- Naive solution
- Why the naive solution breaks
- Forces / trade-offs
- Component or technique
- How it works internally
- Placement in the architecture
- Real-world example
- When to use
- When NOT to use
- Failure modes
- Recognition clues
- Similar alternatives
- Small exercise
- Recall questions
Week 6: Component combinations and complete HLD
Goal: Stop thinking in isolated components. Real systems combine them. Time: about 10 hours.
Module 7: Component combinations
| # | Combination | Example |
|---|---|---|
| 60 | Cache + Database + Invalidation | Product catalog with read-through cache and event-driven invalidation |
| 61 | Queue + Worker + Retry + DLQ | Reliable email and notification delivery |
| 62 | Load balancer + Gateway + Rate limiter | Protected public API |
| 63 | Sharding + Replication + Consistent hashing | Scalable key-value store |
| 64 | CDN + Object storage + Transcoding pipeline | Video upload and playback |
| 65 | Kafka + Stream processor + OLAP store | Real-time analytics |
| 66 | Saga + Outbox + Idempotency | Order and payment workflow |
| 67 | Search index + CDC + Primary DB | Searchable product data kept in sync |
Every combination lesson follows:
Why one component isn't enough
↓
Responsibilities
↓
Data flow
↓
Failure paths
↓
Trade-offs
Complete HLD problem progression Do not make every problem a 45-minute interview exercise. Each problem follows:
Understand
↓
Estimate
↓
Design v1
↓
Find bottlenecks
↓
Scale
↓
Handle failure
↓
Explain
Level 1: Beginner
| # | Problem | Focus |
|---|---|---|
| 68 | URL Shortener | Estimation, ID generation, caching, read-heavy design |
| 69 | Pastebin | Blob storage, expiry, CDN |
| 70 | Rate Limiter (as a service) | Algorithms, distributed counters, consistency |
| 71 | Key-Value Store | Partitioning, replication, consistent hashing |
Level 2: Intermediate
| # | Problem | Focus |
|---|---|---|
| 72 | Chat System | WebSockets, fan-out, message ordering, presence |
| 73 | Notification System | Queues, retries, preferences, multi-channel delivery |
| 74 | News Feed | Fan-out on write vs read, ranking, caching |
| 75 | Web Crawler | Queues, politeness, deduplication, bloom filters |
| 76 | Typeahead / Autocomplete | Tries, caching, ranking, latency |
Level 3: Advanced HLD
| # | Problem | Focus |
|---|---|---|
| 77 | Video Streaming (YouTube/Netflix) | Blob storage, transcoding, CDN, adaptive bitrate |
| 78 | Ride-Hailing (Uber) | Geospatial indexing, matching, real-time location |
| 79 | Payment System | Idempotency, saga, ledger, reconciliation |
| 80 | Ticket Booking | Inventory, concurrency, holds, flash-sale load |
| 81 | File Sync (Google Drive/Dropbox) | Chunking, deduplication, sync conflicts, metadata |
| 82 | E-commerce Platform | Catalog, cart, checkout, inventory, search |
Level 4: Design engineer These are less about standard interview templates and more about genuine architectural ability.
| # | Problem | Focus |
|---|---|---|
| 83 | Distributed Message Queue | Log storage, partitions, consumer groups, delivery guarantees |
| 84 | Distributed Job Scheduler | Leader election, locking, retries, exactly-once effects |
| 85 | Metrics and Monitoring Platform | Time-series storage, ingestion, aggregation, alerting |
| 86 | Search Engine | Indexing, ranking, sharding, freshness |
| 87 | Multi-tenant SaaS Platform | Isolation, noisy neighbors, per-tenant scaling, billing |
| 88 | Global Low-latency Service | Multi-region, replication, conflict handling, failover |
Week 7: Reliability, operations and advanced trade-offs
Goal: Learn to evaluate, operate and evolve designs rather than simply create them. Time: about 10 hours, plus mock interviews.
Failure analysis and operations are an essential part of the curriculum, not an optional appendix.
Module 8: Design smells and anti-patterns
| # | Smell |
|---|---|
| 89 | Single point of failure |
| 90 | Shared database across services |
| 91 | Distributed monolith |
| 92 | Chatty services |
| 93 | Premature sharding / premature microservices |
| 94 | Cache without an invalidation plan |
| 95 | Unbounded queues and missing backpressure |
| 96 | Retry storms and thundering herds |
| 97 | Hot partitions |
| 98 | Dual writes without consistency |
| 99 | No observability |
Each lesson follows:
Bad design
↓
Identify smell
↓
Why it happens
↓
Failure it causes
↓
Fix
↓
Improved design
Module 9: Reliability, operations and advanced thinking These lessons stay at the architecture level and do not turn into a DevOps course.
| # | Lesson |
|---|---|
| 100 | Observability: logs, metrics, traces |
| 101 | SLI, SLO, SLA and error budgets |
| 102 | Capacity planning and load testing |
| 103 | Disaster recovery: RPO, RTO, backup strategies |
| 104 | Deployment strategies: blue-green, canary, feature flags |
| 105 | Schema and data migrations without downtime |
| 106 | Security architecture: authN/Z, encryption, secrets, zero trust basics |
| 107 | Cost-aware design |
| 108 | Multi-tenancy and isolation |
| 109 | Evolving a system from 1K to 1M to 100M users |
| 110 | Communicating a design: diagrams, assumptions, trade-offs |
Phase 2 outcome: a strong hold on cross-component design. The learner can meet an unfamiliar product requirement and estimate, design, critique, scale and evolve a system.
D. Diagramming curriculum
Diagrams are taught alongside design, not as a separate week of tool training. They are limited to the practical subset needed for HLD.
| Lesson | Topic | What the learner covers |
|---|---|---|
| DIAG-1 | Block / architecture diagrams | Clients, services, stores, queues, boundaries |
| DIAG-2 | Data flow diagrams | Read path vs write path, sync vs async flows |
| DIAG-3 | Sequence diagrams | Request flow across services, failure and retry paths |
| DIAG-4 | Deployment and topology diagrams | Regions, zones, replicas, network boundaries |
| DIAG-5 | Choosing the diagram | Which diagram answers which question |
How to choose: "What are the components?" leads to a block diagram. "How does data move?" leads to a data flow diagram. "What happens over time or on failure?" leads to a sequence diagram. "Where does it run?" leads to a deployment diagram.
E. The requirement-to-architecture algorithm
This is the central mental model of ProgVale HLD. Every serious design exercise forces the learner through it, and it should appear repeatedly throughout the course.
1. Requirements
↓
2. Scope and use cases
↓
3. Non-functional requirements
↓
4. Estimation
↓
5. API
↓
6. Data model
↓
7. Access patterns
↓
8. High-level architecture
↓
9. Storage choices
↓
10. Scaling the bottleneck
↓
11. Caching and async
↓
12. Consistency decisions
↓
13. Failure handling
↓
14. Observability
↓
15. Trade-offs
↓
16. Evolution
The learner eventually should not ask, "Which architecture does this question require?" They should ask:
- What are the scale and access patterns?
- What is the bottleneck?
- What must be consistent and what can be eventual?
- What happens when this component fails?
- Where is the single point of failure?
- Do I actually need this component yet?
That is the real HLD skill.
F. Small design exercise bank
These exercises sit between theory and complete HLD problems. Each reinforces one specific concept rather than being an arbitrary interview question.
| Exercise | Primary concept |
|---|---|
| ID Generator | Distributed uniqueness, ordering trade-offs |
| Cache layer for a product page | Cache-aside, invalidation, stampede |
| Rate limiter | Token bucket, shared state |
| Email delivery pipeline | Queues, retries, DLQ |
| Leaderboard | Sorted sets, sharding, approximate vs exact |
| Hit counter | Write-heavy counters, batching, sharded counters |
| Session store | Replication, TTL, availability |
| Image upload service | Blob storage, pre-signed URLs, CDN |
| Distributed lock | Leases, fencing tokens, failure |
| Autocomplete service | Trie, caching, precomputation |
| Webhook delivery | Retries, idempotency, signing |
| Feature flag service | Read-heavy config, propagation delay |
| Search for a product catalog | Inverted index, CDC sync |
| Analytics event pipeline | Ingestion, batching, stream vs batch |
G. The ProgVale lesson format
Every article follows one consistent template that fits the 10 to 25 minute format and the Learn, Practice, Recall, Apply, Integrate model.
Title: {Lesson Title}
Learning Objective
By the end of this lesson you should be able to...
Prerequisites
You should already understand...
The Problem
Start with a real system problem with numbers.
Concept
Explain the theory.
Example
Show a small architecture or flow.
Bad Design
Show the naive architecture.
Why It Is Bad
Explain the failure under load, failure or change.
Better Design
Evolve the architecture.
Design Thinking
Explain how we arrived at the design.
Small Exercise
Estimate / sketch...
Can You Explain?
1. ...
2. ...
3. ...
Can You Design?
Given...
Completion Criteria
You are done when you can...
Recall
Review this concept later.
H. Spaced learning architecture
This is where ProgVale can be better than a static HLD course. Concepts must not be learned once and then never seen again.
Avoid:
Caching → Sharding → Queues → CAP → never seen again
Instead, resurface each concept across later work:
Learn Caching
↓
Small cache exercise
↓
URL Shortener
↓
News Feed
↓
E-commerce
↓
Video Streaming
↓
Failure-analysis exercise (cache stampede)
The same applies to trade-offs:
Consistency vs Availability
↓
Key-Value Store
↓
Chat System
↓
Payment System
↓
Ticket Booking
↓
Global Low-latency Service
I. Dependency maps
Concept dependency graph
Programming + LLD Basics
│
▼
Client-Server and Request Lifecycle
│
┌───────────────┼────────────────┐
▼ ▼ ▼
Networking APIs Estimation
│ │ │
└───────────────┼────────────────┘
▼
Single-server Architecture
│
┌───────────────┼────────────────┐
▼ ▼ ▼
Databases Caching Load Balancing
│ │ │
▼ │ │
Replication / Sharding │ │
│ │ │
└───────────────┼────────────────┘
▼
Async Processing (Queues, Streams)
│
▼
Distributed Systems Fundamentals
(failure, consistency, consensus)
│
┌─────────┴─────────┐
▼ ▼
Reliability Patterns Architecture Styles
│ │
└─────────┬─────────┘
▼
Component Combinations
│
▼
Complete HLD Problems
│
▼
Failure Analysis and Anti-patterns
│
▼
Operations, Evolution and Advanced Trade-offs
│
▼
Interview Ready
│
▼
Strong HLD Engineer
Component dependency graph
Components have their own prerequisites. This is more educational than a flat list of "system design topics."
Estimation → Load balancing → Stateless services → Horizontal scaling
Single DB → Indexing → Replication → Sharding → Consistent hashing
Replication → Consistency models → Quorum → Leader election
Caching → Invalidation → Stampede protection → Multi-layer caching
Queues → Delivery semantics → Idempotency → Saga → Outbox
Queues → Logs/Kafka → Stream processing → Real-time analytics
Blob storage → CDN → Transcoding pipeline → Video streaming
Geohash/Quadtree → Proximity search → Ride-hailing
Inverted index → Search service → CDC sync → Search engine
J. Priorities: what to know
Must know deeply
| Area | Topics |
|---|---|
| Fundamentals | Estimation, latency vs throughput, availability, scalability, read/write patterns |
| Data | SQL vs NoSQL trade-offs, indexing, replication, sharding, consistent hashing, transactions and isolation |
| Building blocks | Load balancing, caching strategies and invalidation, CDN, queues and streams, rate limiting, API gateway |
| Distributed systems | CAP/PACELC, consistency models, idempotency, retries and timeouts, saga, circuit breaker, delivery semantics |
| Design skills | Requirement scoping, estimation, bottleneck analysis, failure reasoning, trade-off analysis, evolution planning |
Should know
Leader election and quorum, event sourcing, CQRS, outbox pattern, bloom filters, geospatial indexing, search and inverted indexes, stream vs batch processing, multi-region design, observability, SLOs, disaster recovery.
Awareness
Paxos/Raft internals, CRDTs, vector clocks, gossip protocols, two-phase commit internals, columnar and OLAP engine internals. The learner should recognize these and understand their purpose, but should not spend disproportionate time memorizing implementations.
K. Time allocation and phase summary
70-hour allocation
| Area | Hours |
|---|---|
| Foundations, requirements and estimation | 6 |
| Networking and API design | 6 |
| Data and storage | 9 |
| Scaling building blocks | 9 |
| Distributed systems fundamentals | 8 |
| Architecture styles and patterns | 6 |
| Component combinations | 4 |
| Small exercises | 5 |
| Complete HLD problems | 9 |
| Reliability and operations | 4 |
| Advanced trade-off thinking | 4 |
| Total | 70 |
The allocation is intentionally weighted toward reasoning, failure and application, rather than spending 25 hours memorizing the architecture of famous products.
Phase 1 vs Phase 2
| Phase | Weeks | Hours | Content | Outcome |
|---|---|---|---|---|
| 1 | 1 to 4 | 40 | Week 1: systems thinking and estimation. Week 2: networking, APIs. Week 3: data storage. Week 4: caching, queues, load balancing, URL Shortener project | Strong hold on fundamentals |
| 2 | 5 to 7 | 30 | Week 5: distributed systems and architecture styles. Week 6: component combinations and complete HLD. Week 7: failure analysis, operations, advanced design, mock interviews | Strong hold on cross-component design |
L. Interview progression
The learner moves through four stages. ProgVale should optimize for Stage 4.
| Stage | Level | Learner's statement |
|---|---|---|
| 1 | Beginner | "I know what a cache, queue and load balancer are." |
| 2 | Interview ready | "I can solve URL Shortener, Chat, News Feed, Uber, etc." |
| 3 | Strong HLD | "I can design an unfamiliar system by reasoning from requirements and numbers." |
| 4 | Architect | "I can explain why this architecture fits, where it will break first, what it costs, and how I would evolve it." |
M. What typical HLD courses get wrong
1. They teach famous systems before fundamentals
Typical course order:
Design Twitter → Design YouTube → Design Uber → ...
The learner memorizes diagrams but cannot adapt when the requirement changes. ProgVale uses this order instead:
numbers → bottleneck → failure → technique → component → system
2. They skip estimation
"Just add a cache and shard the database" means nothing without numbers. A design with no QPS, storage or bandwidth estimate is decoration. Estimation is taught in week 1 and used in every problem.
3. They teach CAP as a slogan
"Pick two of three" teaches nothing. Instead:
Two regions
↓
Network partition
↓
Accept writes on both sides?
↓
What does the user see?
↓
What is the cost of being wrong?
↓
Consistency model chosen per feature
4. They list technologies instead of trade-offs
"Use Kafka" or "use Cassandra" is not an answer. A learner must repeatedly answer: why this, what does it cost, and what is the simpler alternative?
Where should the feed be computed?
- On write (fan-out on write)?
- On read (fan-out on read)?
- Hybrid for celebrities?
There is not always one universal answer. The learner must learn to reason about the trade-offs.
5. They do not teach when NOT to scale
Bad HLD education teaches:
Load balancer → Microservices → Kafka → Kubernetes → Multi-region (for 1,000 users)
Good HLD teaches: do not add a component until a number or a failure mode demands it. This connects directly to YAGNI and avoiding overengineering at the system level.
6. They ignore failure
Most courses show the happy path. Real systems encounter:
slow dependency → retries → overload → cascading failure → outage
Failure analysis therefore gets its own module, not a closing remark.
7. They do not teach design evolution
The most important question is not "does this design work?" but "what happens at 10x load or when a requirement changes?" Every major ProgVale problem therefore has:
Version 1 (works for 10K users)
↓
Traffic grows 100x / new requirement
↓
What breaks first?
↓
Scale or redesign
↓
Version 2
This is probably the single strongest differentiator to build into ProgVale.
N. The golden rule and the final target
The golden rule for every article
Every lesson should answer at least one of these questions:
- What problem does this solve, at what scale?
- Why does the naive design fail?
- What is the bottleneck?
- What must be consistent, and what can be eventual?
- What happens when this component fails?
- Where does this component live in the architecture?
- Do we actually need it yet?
- What happens when load or requirements change?
That turns the curriculum from a "20 famous systems plus a list of technologies" course into an actual system design training system.
Final curriculum size
Target about 100 to 110 substantial lessons, not 150 or more tiny ones. The first 88 form the structured learning path; the remainder cover failure analysis, operations, advanced design and repeated application. A learner doing 10 hours a week can complete the core path in 7 weeks, and ProgVale can keep resurfacing earlier concepts through spaced practice afterward.
The ultimate competency
New requirement
↓
What are the use cases and scale?
↓
What are the access patterns?
↓
Where is the bottleneck?
↓
What must be consistent?
↓
What happens when it fails?
↓
Do I need this component?
↓
What are the trade-offs and costs?
↓
How will the system evolve?
Notes & links
Saved automatically.