Level 10: Architecture That Survives Change
Protect architecture characteristics automatically and evolve the system incrementally instead of by big rewrites.
Outcome: Protect architecture characteristics automatically and evolve the system incrementally instead of by big rewrites.
Two years after the split, ShopFlow’s architecture is quietly eroding. Fitness functions, architecture tests and incremental change keep it healthy as the business keeps changing.
The pressure on ShopFlow: Rules on the wiki are ignored; services quietly reach into each other’s databases.
Lessons in level 10
- Architecture Erosion: How Good Designs Decay — Small shortcuts, repeated for a year, become the architecture.
- Fitness Functions: Tests for Your Architecture — Turn architecture goals into objective, automated checks.
- Automated Architecture Tests with ArchUnit — Fail the build when a module breaks a dependency rule.
- Incremental Change: Strangler Fig, Expand/Contract & Pipelines — Evolve a running system without big-bang rewrites.
- Evolving Data: Schema Changes Without Downtime — Parallel change, backfills and versioned events.
- Change Dimensions & the Last Responsible Moment — Decide late enough to know more, early enough to act.
Source books
- Evolutionary Architecture — Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage
- Software Architecture — Mark Richards, Neal Ford, Pramod Sadalage, Zhamak Dehghani