
Эволюционная архитектура на практике
Fitness functions, инкрементальные изменения и архитектурные качества на масштабе крупного финтеха

Fitness functions, инкрементальные изменения и архитектурные качества на масштабе крупного финтеха
Fitness functions, инкрементальные изменения и архитектурные качества на масштабе крупного финтеха
От «зачем» до «как мерить» эволюционную архитектуру
Зачем архитектуре эволюционировать
Booch: дорого менять = architecture
Fitness Functions и -ilities
Modularity, cohesion, practice
Почему архитектура должна эволюционировать
Масштаб, мультипродукт и непрерывный рост
16+ млн клиентов
Мультипродуктовая экосистема
Рост штата → переход к stream-aligned командам
Big-bang architecture не работает
Booch и стоимость изменений
А «важные» — те, что дорого менять
Significant design decisions
Значимость = стоимость change
Дешёвое — не архитектура
Фундамент: данные, контракты, сервисы
Инкрементальные и управляемые изменения
Поддерживает направленные инкрементальные изменения
Маленькие build + deploy шаги
Эффект виден через метрики
Architecture = process
Быстрее изменений бизнеса
Idea → Requirements → Development → Deploy
Idea — гипотеза
Requirements — функции + architecture
Development — код, тесты, миграции
Deploy — rollout, rollback, effect
Как измерить архитектуру
Из книги «Building Evolutionary Architectures»
Измеримая проверка -ility
Throughput, latency, security
CI / prod / periodic
Падение = архитектурный регресс
Что обычно меряем через FF
Performance: throughput / latency
Reliability: SLO / error budget
Usability: продуктовые метрики
Auditability / security
Мониторинг и алертинг как живая FF в проде
SLO + error budget
p50/p95/p99 latency
Burn-rate alerts
Domain dashboards
По частоте, скоупу и способу запуска
Atomic / Holistic
Triggered / Continuous
Static / Dynamic
Manual / Automated / Temporal
Atomic / Holistic × Triggered / Continuous — где какие проверки живут
Cohesion и Coupling
Из книги «Fundamentals of Software Architecture»
Modularity — clear boundaries
Cohesion — «про одно»
Coupling — зависимость от чужого
High cohesion, low coupling
На границе бизнес-домена, а не технологии
DDD bounded context
Контракт = API + events
Implementation private
Contract change requires FF
Как это выглядит в работе
Что мы реально проверяем автоматикой
No cyclic dependencies
p99 API latency budget
Crash-free sessions threshold
DB access / resource budget
Маленькие шаги, измеримый эффект
1–2 FF на больной домен
FF в CI / SLO
Owner-team per characteristic
Регулярный review набора FF
Эволюционная архитектура = измеряемая архитектура
Architecture = expensive decisions
Evolution = incremental + guided
FF make -ilities measurable
Low coupling, high cohesion
Evolutionary architecture, DDD, FF practice
Building Evolutionary Architectures
Hard Parts + Fundamentals
Domain-Driven Design
ArchUnit + Tech Radar
polomodov.tech
Все слайды и ссылки — в Telegram-канале
Александр Поломодов, Technical Director & Fellow, Т-Технологии
@book_cube