Evolutionary Software Architectures
summary
Defines an architecture that supports guided, incremental change along multiple dimensions and uses fitness functions (metrics or tests) to steer evolution. Recommends concrete practices: feature toggles, deployment pipelines, cross‑functional “two Pizza teams” and decentralized data with eventual consistency. Gives examples: a Rails site swaps backgroundRB for Starling in under a week because work sits behind an interface; an airline monolithic customer service becomes a real outage bottleneck during a volcano. Advises avoiding distributed transactions, monitoring cycle time (e.g. <6 hours) and enforcing page load SLAs (e.g. ~1s).
AI-written summary · about
chapters (13)
- 0:00Introduction to evolutionary architecture
- 2:32Dynamic equilibrium in software
- 6:02Evolvability of software architectures
- 13:48Microservices as evolutionary architecture
- 17:42Guided incremental change definition
- 22:39Four-dimensional view of architecture
- 29:33Decentralized data management
- 33:29Principles for evolutionary architectures
- 41:40Bringing pain forward in practices
- 46:39Conway's law and team structure
- 51:14Fitness functions for guided evolution
- 55:03Engineering practices for evolution
- 1:00:19Hypothesis-driven development
related talks
53mEvolutionary Architecture: Principles and Patterns
01h 00mEvolutionary Architectures
42mBuilding Evolutionary Architectures: Principles and Practices
33mBuilding Evolutionary Architectures
49mThe Principles of Evolutionary Architecture
35mPrinciples of Evolutionary Architecture
39mHow will Evolutionary Architecture evolve?
39mPrinciples of Evolutionary Architecture
