Skip to content
all episodes
Code of Architecture · episode 37

Building Evolutionary Architectures — Episode 4

1:08:11

Episode participants

Conversation

What we discussed on the recording

The fourth Building Evolutionary Architectures episode focuses on data evolution. The panel rejects data as an untouchable layer: code and schema change together, obsolete fields and records must disappear, and every change should support incremental rollout and verification.

The migration shape is expand and contract: old and new versions temporarily read and write compatible formats, data is moved, then the old path is removed. Triggers, backfills, and rollbacks carry risks. Fitness functions enforce constraints, while explicit ownership prevents inconsistent copies from spreading.

The discussion contrasts 2006 database-refactoring advice with JSON, schema-on-read, and sharding. Distribution weakens local constraints but makes integrity harder. Two-phase commit increases coupling, while sagas and compensating actions move recovery into business logic and require coordination.

The finale considers distributed SQL and a transactional database that hides scaling, plus a model-driven approach built on shared data models. Cloud services automate much of this, while on-premises systems retain control-plane, operations, and incident costs. Data evolution remains a discipline of change and observable rollback.

Book series
Building Evolutionary Architectures
Neal Ford, Rebecca Parsons, Patrick Kua
Book playlist