Software Engineering Architecture Lab
Learn software architecture and system design hands-on: 98 lessons, 22 interactive simulations, case studies and interview practice.
The learning path: 11 levels
- Level 1: Engineering Foundations — Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early.
- Level 2: Clean Code & Professional Engineering — Write code others can safely change, and behave like a professional under pressure.
- Level 3: Object-Oriented Design — Design classes and interfaces so new requirements mean adding code, not editing fragile code.
- Level 4: Design Patterns — Recognise the recurring pain behind a design, and reach for the pattern that relieves it — or decide you do not need one.
- Level 5: Enterprise Application Architecture — Structure a business application into layers, choose how domain logic and data access are organised, and understand what your framework does for you.
- Level 6: Domain-Driven Design — Model a complex business domain in code, and draw boundaries where the language changes.
- Level 7: Software Architecture — Identify the characteristics that matter, compare styles by their trade-offs, and record decisions so others understand why.
- Level 8: Data-Intensive Systems — Explain how databases store, replicate, partition and protect data — and predict how they fail.
- Level 9: Microservices — Decide whether microservices are worth it, draw service boundaries, and design communication and failure handling that survive production.
- Level 10: Architecture That Survives Change — Protect architecture characteristics automatically and evolve the system incrementally instead of by big rewrites.
- Level 11: Production Architecture — Design, operate and reason about a system at global scale — and put every previous level together.
Explore the lab
- Learning Path — 11 levels and 98 lessons, from engineering foundations to production architecture.
- Simulations — 22 interactive simulations of storage engines, caches, Kafka, transactions, microservices and architecture.
- Case Studies — 5 end-to-end system designs: marketplace, payments, ride-sharing, streaming and SaaS billing.
- Architecture Lab — Watch ShopFlow evolve, make architecture decisions, write ADRs and design the final production architecture.
- Break the System — Kill services, inject latency and duplicate messages, then add the patterns that keep checkout alive.
- Interview Mode — 6 system design interview problems with guided, step-by-step practice.
- Build It Yourself — 9 small implementations: a cache, a hash ring, a message broker, a circuit breaker and more.
- Reference — 85 patterns, 169 architecture terms and the ten source books.
- I Have a Problem — Start from a symptom — 26 common engineering problems mapped to what to learn first.
Hands-on labs
- Kafka Lab — Logs, partitions, keys, consumer groups and ordering.
- Database Internals Lab — Storage engines, indexes, replication and partitioning.
- Transactions Lab — Isolation anomalies, lost updates and distributed transactions.
- Caching Lab — Hit rates, TTLs, invalidation, stampedes and CDNs.
- Microservices Lab — Failures, retries, circuit breakers, sagas and idempotency.
- Architecture Lab — Evolution, decisions, characteristics and fitness functions.