Software Engineering Architecture Lab

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

  1. Level 1: Engineering Foundations — Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early.
  2. Level 2: Clean Code & Professional Engineering — Write code others can safely change, and behave like a professional under pressure.
  3. Level 3: Object-Oriented Design — Design classes and interfaces so new requirements mean adding code, not editing fragile code.
  4. 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.
  5. 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.
  6. Level 6: Domain-Driven Design — Model a complex business domain in code, and draw boundaries where the language changes.
  7. Level 7: Software Architecture — Identify the characteristics that matter, compare styles by their trade-offs, and record decisions so others understand why.
  8. Level 8: Data-Intensive Systems — Explain how databases store, replicate, partition and protect data — and predict how they fail.
  9. Level 9: Microservices — Decide whether microservices are worth it, draw service boundaries, and design communication and failure handling that survive production.
  10. Level 10: Architecture That Survives Change — Protect architecture characteristics automatically and evolve the system incrementally instead of by big rewrites.
  11. 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.