all frameworks
05 · Framework

Fitness Functions Matrix

Atomic ↔ Holistic × Triggered ↔ Continuous
Atomic
single service / module
Holistic
the whole system
Triggered
on event / in CI

Unit-level checks in CI

  • ArchUnit — no cyclic deps in a module
  • Lint rules on a service
  • Per-service contract tests

System checks on demand

  • Load test of an end-to-end flow
  • Chaos game-day for a domain
  • Security pentest on release
Continuous
always-on in production

Always-on per-service signals

  • Service SLO + error budget
  • p99 latency alerts
  • Crash-free sessions for a mobile app

Always-on system-wide signals

  • End-to-end business SLOs
  • Domain dashboards & alerts
  • Cost / resource budgets

Fitness functions from evolutionary architecture are automated checks that the system preserves its important characteristics over time. The 2×2 matrix lays them out along two axes.

Horizontally — atomic (a single service) vs holistic (the whole system). Vertically — triggered (on event, in CI) vs continuous (always-on in production via SLOs and budgets).

The matrix helps you answer where you already have automated guarantees and where architectural properties only survive on tribal memory — and which cell to strengthen next.

How to use this model
01

List the architectural qualities the system must preserve.

02

Place each check into one of the four matrix cells.

03

Pick the empty or weak cell that should be strengthened next.

Source talks
Share