К основному содержимому
все выпуски
Code of Architecture · выпуск 36

Building Evolutionary Architectures — выпуск 3

1:16:40

Участники выпуска

  • Сергей Баранов

    гость

Содержание

Что обсудили голосом

Выпуск связывает evolutionary architecture с coupling. Connascence означает: изменение одного компонента требует изменения другого. Хорошая архитектура максимизирует локальные изменения, удерживает сильные связи внутри границы и не разносит их по системе.

Architectural quantum — independently deployable artifact с высокой functional cohesion, высоким static coupling и synchronous dynamic coupling внутри. Microservice вместе со своей database обычно образует quantum. Общий broker спорен: зависимость остаётся, но event contracts позволяют сервисам эволюционировать без одновременного release.

Границы проверяют через domain isolation и четыре технических вида: state, time, space и failure isolation. Асинхронность, circuit breakers и bulkheads уменьшают блокирующие связи. Одна database для нескольких сервисов не всегда один quantum при изолированных schemas; distributed atomic business transaction связывает части.

Reuse сравнивают не с LEGO, а с пересадкой органов: компонент адаптируют к новым потокам и заново проверяют fitness functions. Чем универсальнее code, тем труднее им пользоваться. Дублирование модели в разных bounded contexts может быть безопаснее общей зависимости. Финал обсуждает sidecars, coupling в business analysis и cooperative quantum для data products.

Серия по книге
Building Evolutionary Architectures
Neal Ford, Rebecca Parsons, Patrick Kua
Плейлист книги