SOFTWARE ENGINEER · SUBJECT OUTLINEComing soon
System Design.
Follow a request through a system and learn how to make each architectural choice.
This subject is being prepared.
You can explore the curriculum below. Full lessons and interactive examples are not published yet.
THE LEARNING ROADMAP
A look inside the course.
Open a chapter to explore its planned topics.
01What a system is and how it grows6 topics
- Components and boundariesPlanned
- Request-response and background workPlanned
- State and statelessnessPlanned
- Single-process versus distributed systemsPlanned
- Latency and throughputPlanned
- Availability, durability, and reliabilityPlanned
02The journey of a request7 topics
- DNS resolutionPlanned
- TCP connectionsPlanned
- TLS overviewPlanned
- HTTP requests and responsesPlanned
- Proxies and gatewaysPlanned
- REST versus RPCPlanned
- WebSockets, SSE, and pollingPlanned
03Requirements and useful estimates6 topics
- Functional requirementsPlanned
- Quality goals and constraintsPlanned
- Core entities and access patternsPlanned
- Peak versus average loadPlanned
- Storage and bandwidth estimatesPlanned
- Estimates that change a decisionPlanned
04API and contract design7 topics
- Resources and operationsPlanned
- Request/response contractsPlanned
- PaginationPlanned
- IdempotencyPlanned
- VersioningPlanned
- Error semanticsPlanned
- Authentication contextPlanned
05Data modeling6 topics
- Entities and relationshipsPlanned
- Keys and constraintsPlanned
- Access-pattern-driven modelingPlanned
- Normalization and denormalizationPlanned
- Transactions and isolationPlanned
- Concurrent updatesPlanned
06Storage and database internals7 topics
- Relational storesPlanned
- Document and key-value storesPlanned
- Wide-column and graph modelsPlanned
- Indexes and query plansPlanned
- B-trees and LSM treesPlanned
- Object and file storagePlanned
- Storage-selection tradeoffsPlanned
07Caching in depth8 topics
- Cache hits and missesPlanned
- Cache-asidePlanned
- Read-through and write-throughPlanned
- Write-back and durability implicationsPlanned
- TTL and evictionPlanned
- Invalidation and stale readsPlanned
- Cache stampedesPlanned
- Hot keysPlanned
08Traffic distribution and service capacity6 topics
- Vertical and horizontal scalingPlanned
- Load-balancing placementPlanned
- Load-balancing algorithmsPlanned
- Health checks and failoverPlanned
- Connection and resource poolsPlanned
- Autoscaling and its delayPlanned
09Replication and consistency8 topics
- Leader/follower replicationPlanned
- Synchronous and asynchronous replicationPlanned
- Replica lagPlanned
- Strong and eventual consistencyPlanned
- Read-your-writes and session guaranteesPlanned
- CAP during partitionsPlanned
- Quorums and their assumptionsPlanned
- Conflict resolutionPlanned
10Partitioning and data distribution6 topics
- Hash and range partitioningPlanned
- Consistent hashingPlanned
- RebalancingPlanned
- Hot partitions and skewPlanned
- Cross-partition operationsPlanned
- Global versus local indexesPlanned
11Queues, streams, and asynchronous work8 topics
- Work queues versus publish/subscribePlanned
- Producers, consumers, and acknowledgementsPlanned
- Delivery guaranteesPlanned
- Deduplication and idempotent processingPlanned
- Ordering and partitionsPlanned
- Retries and dead-letter queuesPlanned
- Backpressure and consumer lagPlanned
- Batch versus stream processingPlanned
12Failures and recovery10 topics
- TimeoutsPlanned
- Retries with backoff and jitterPlanned
- Retry budgetsPlanned
- Circuit breakersPlanned
- Bulkheads and isolationPlanned
- Load sheddingPlanned
- Graceful degradationPlanned
- Backups and recoveryPlanned
- Regional failoverPlanned
- Failure detection and consensus overviewPlanned
13Service and event architectures7 topics
- Modular monoliths and microservicesPlanned
- Service boundaries and ownershipPlanned
- Orchestration versus choreographyPlanned
- Transactional outboxPlanned
- Sagas and compensationPlanned
- CQRSPlanned
- Event sourcing and its tradeoffsPlanned
14Operating a system7 topics
- Logs, metrics, and tracesPlanned
- Correlation across requestsPlanned
- Service indicators and objectivesPlanned
- AlertingPlanned
- Rollout and rollbackPlanned
- Schema and data migrationsPlanned
- Capacity and cost reviewsPlanned
15Security in a design6 topics
- Authentication versus authorizationPlanned
- Least privilegePlanned
- Secrets and encryptionPlanned
- Abuse controls and rate limitsPlanned
- Sensitive-data handlingPlanned
- Threat modelingPlanned
16Common design problems as reusable patterns8 topics
- Rate-limiting algorithmsPlanned
- Unique ID generationPlanned
- Fanout on read versus writePlanned
- Large file uploadsPlanned
- Search and inverted indexesPlanned
- Distributed locks and leasesPlanned
- Scheduling long-running tasksPlanned
- Aggregations and countersPlanned
17Guided system design cases14 topics
- URL shortenerPlanned
- Rate limiterPlanned
- Notification systemPlanned
- Asynchronous job platformPlanned
- File-storage servicePlanned
- Chat servicePlanned
- News feedPlanned
- Ticket bookingPlanned
- Search/autocomplete servicePlanned
- Video delivery servicePlanned
- Metrics collectionPlanned
- Web crawlerPlanned
- Payment workflowPlanned
- Location-based matchingPlanned
18Advanced system topics8 topics
- Consensus deep divePlanned
- Multi-region data placementPlanned
- Time-series systemsPlanned
- Probabilistic structuresPlanned
- Change data capturePlanned
- Stream-processing state and windowsPlanned
- Geospatial indexesPlanned
- Vector search as an optional extensionPlanned
Start learning while this subject takes shape.
Explore DSAExplore the complete DSA lessons, visual walkthroughs, and practice questions.