Software Engineering Architecture Lab

Software Architecture Lab: Interactive Simulations & Lessons

Evolution, decisions, characteristics and fitness functions. A hands-on software architecture lab with 4 interactive simulations and 5 lessons.

Evolution, decisions, characteristics and fitness functions.

Architecture is decisions under constraints. Step through ShopFlow’s evolution, make decisions and live with their consequences, write ADRs, and protect the result with fitness functions.

Simulations

  • Architecture Evolution Stepper — Step ShopFlow from monolith to multi-region and compare characteristics, failure points and complexity at each version.
  • Architecture Fitness Functions — Add dependencies between modules and watch automated fitness functions pass or fail the build.
  • Design Pattern Playground — Add payment methods, discounts and order states to ShopFlow with and without patterns; count the classes you had to edit.
  • DDD Bounded Contexts Workshop — Sort ShopFlow concepts into bounded contexts, see where “Customer” and “Product” mean different things, and check coupling.

Lessons

  1. What Architecture Really Is (and Isn’t) — Level 7 · Software Architecture
  2. Architecture Characteristics: The -ilities Under Pressure — Level 7 · Software Architecture
  3. Architecture Styles and Their Trade-offs — Level 7 · Software Architecture
  4. Trade-off Analysis: Thinking Like an Architect — Level 7 · Software Architecture
  5. Fitness Functions: Tests for Your Architecture — Level 10 · Evolutionary Architecture

Also explore

Other 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.