System Design Space
Knowledge graphSettings

Updated: February 23, 2026 at 4:10 PM

Building Evolutionary Architectures (short summary)

hard

Source

CoA Book Club

The chapter material is based on the book analysis in the Code of Architecture book club

Read original

Building Evolutionary Architectures, 2nd Edition

Authors: Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage
Publisher: O'Reilly Media, Inc.
Length: 262 pages

Fitness Functions for Architectural Verification, Connascence, Architectural Quantum and Database Evolution.

Building Evolutionary Architectures, 2nd Edition - original coverOriginal
Building Evolutionary Architectures, 2nd Edition - translated editionTranslated

Related book

Fundamentals of Software Architecture

Basic concepts of architecture: characteristics, styles, decision making

Read review

What is Evolutionary Architecture

Evolutionary Architecture = Incremental Change + Fitness Functions + Appropriate Coupling

Incremental Change

The architecture should support small, frequent changes instead of large releases

Fitness Functions

Automated checks of architecture compliance with specified characteristics

Appropriate Coupling

The right level of coupling between components for independent evolution

Related book

Continuous Architecture in Practice

Practical continuation of fitness functions: continuous feedback loops and architecture decisions as an ongoing process.

Read review

Fitness Functions

Fitness Function is an objective criterion for assessing how well an architecture meets a given characteristic. The term is borrowed from genetic algorithms.

Types of Fitness Functions

  • Atomic — checking one characteristic (unit test)
  • Holistic — checking the interaction of several characteristics
  • Triggered — triggered by event (commit, deploy)
  • Continuous — work constantly (monitoring)

Implementation examples

  • Performance — load tests in CI/CD pipeline
  • Security — SAST/DAST scanning, dependency audit
  • Modularity — ArchUnit, dependency checks
  • Resilience — Chaos Engineering experiments

Key idea

Fitness Functions integrate into the CI/CD pipeline and automatically block changes that violate architectural specifications. This turns architectural decisions into executable specifications.

Related book

Software Architecture: The Hard Parts

Detailed analysis of coupling, cohesion and architectural quantum

Read review

Coupling and Connascence

The book expands on the concept of coupling through the concept Connascence — a more detailed taxonomy of dependencies between components.

Static Connascence (weak)

  • Name - name consistency
  • Type - type consistency
  • Meaning — consistency of semantics of constants
  • Position — consistency of parameter order
  • Algorithm — consistency of algorithms

Dynamic Connascence (strong)

  • Execution - order of execution
  • Timing - time dependencies
  • Values - associated values
  • Identity - links to one object

Rule: Strive for weak connascence between modules (Name, Type) and allow strong only inside the module. The stronger the connascence, the closer the components should be.

Architectural Quantum

Architectural Quantum — a minimal independently deployable artifact with high functional coherence, including all the necessary components (code, data, infrastructure) for operation.

Monolith

1 quantum = entire system

Modular Monolith

1 quantum, but logical separation

Microservices

N quanta = N services

Quanta quantity influences independence of evolution: the larger the quanta, the more independently parts of the system can develop, but the higher the operational complexity.

Related book

Database Internals

Deep dive into the DBMS design and distributed transactions

Read review

Evolution of Databases

Data schema evolution is one of the most difficult parts of evolutionary architecture. The authors recommend an approach incremental migrations.

ACID (RDBMS)

PostgreSQL, MySQL, Oracle

Strong consistency, schema fixed

BASE (NoSQL)

MongoDB, Cassandra, DynamoDB

Eventual consistency, flexible schema

NewSQL

Spanner, CockroachDB, YDB

ACID + horizontal scaling

Expand-Contract Pattern

For safe circuit evolution: Expand (add new field) → Migrate (transfer data) → Contract (delete old field). Allows you to make changes without downtime.

Organizational aspects

Architecture is inextricably linked with organizational structure (Conway's Law). The authors emphasize the importance of aligning architectural boundaries with team boundaries.

DORA Metrics

  • Deployment Frequency - how often do we deploy?
  • Lead Time for Changes — time from commit to sale
  • Mean Time to Recovery — recovery time
  • Change Failure Rate — % of unsuccessful deployments

Types of solutions

  • Type 1 (irreversible) — choice of language, DBMS, cloud. Requires careful analysis.
  • Type 2 (reversible) — API design, module structure. You can experiment.

Application at System Design Interview

✓ What to use

  • Fitness Functions - “how will we check that the system complies with the SLO?” (monitoring latency, error rate)
  • Architectural Quantum — justification of service boundaries and choice between monolith and microservices
  • Expand-Contract — data schema migration strategy without downtime
  • Connascence — analysis of dependencies between components during decomposition

✗ Common mistakes

  • Design "for eternity" instead of an evolutionary approach
  • Ignore the cost of future changes
  • Ignore Organizational Constraints (Conway's Law)
  • Choosing microservices without understanding operational overhead

Application example

"For this case I would choose modular monolith as a starting point - this gives one architectural quantum with low operational overhead. The boundaries of the modules correspond to bounded contexts, which will allow them to be extracted into separate services without refactoring in the future. As a fitness function for performance, we will add load test to the CI pipeline with threshold p99 < 200ms."

Verdict

Advantages

  • A practical approach to architectural evolution
  • The Fitness Functions concept is immediately applicable
  • Good coverage of organizational aspects
  • Synergy with other books by authors

Restrictions

  • Fewer practical implementation examples
  • Connascence may seem abstract
  • Requires familiarity with other books in the series

Recommendation: Read after "Fundamentals of Software Architecture" and "Software Architecture: The Hard Parts" - the books form a trilogy with common terminology and complement each other.

Sources

Where to find the book

Enable tracking in Settings

System Design Space

© 2026 Alexander Polomodov