Практическое руководство по архитектурным компромиссам в распределённых системах от авторов «Фундаментального подхода к программной архитектуре». Через кейс вымышленной команды Sysops Squad исследуются все аспекты выбора архитектуры: гранулярность сервисов, оркестрация, распределённые транзакции, масштабируемость. Акцент не на готовых ответах, а на умении критически оценивать компромиссы.
🧠 Ключевые идеи
Гранулярность сервисов: как определить оптимальный размер сервиса — слишком крупный снижает гибкость, слишком мелкий увеличивает операционную сложность
Управление данными в распределённых системах: сага, eventually consistent, CQRS — стратегии для транзакций без единой базы данных
Контракты между сервисами: строгие vs. гибкие схемы, consumer-driven contracts, управление версионированием API
Оркестрация vs. хореография: централизованный координатор или event-driven автономия — когда что использовать
Операционные характеристики: масштабируемость, развёртываемость, тестируемость и адаптируемость как первоклассные архитектурные требования