Skip to content
all episodes
Code of Architecture · episode 36

Building Evolutionary Architectures — Episode 3

1:16:40

Episode participants

  • Sergey Baranov

    guest

Conversation

What we discussed on the recording

The session connects evolutionary architecture with coupling. Connascence means that changing one component requires a change in another. A good architecture maximizes local change, keeps strong coupling within boundaries, and avoids spreading it across the system.

An architectural quantum is an independently deployable artifact with high functional cohesion, high static coupling, and synchronous dynamic coupling. A microservice and its database form one quantum. A shared broker is debatable: the dependency remains, but event contracts let services evolve without a simultaneous release.

Boundaries are tested through domain isolation and four forms: state, time, space, and failure isolation. Asynchrony, circuit breakers, and bulkheads reduce blocking relationships. One database for several services is not always one quantum when schemas are isolated; a distributed atomic business transaction binds the parts.

Reuse is compared not to LEGO but to organ transplantation: a component adapts to new flows, and its fitness functions need review. The more universal the code, the harder it is to use. Duplicating a model across bounded contexts may be safer than a shared dependency. The finale covers sidecars, business-analysis coupling, and a cooperative quantum for data products.

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