Блок 3. Микросервисы, DDD и устойчивость
«Все знают, что такое Saga». Цель блока — не знать названия паттернов, а уметь объяснить, какую проблему решает каждый паттерн, чем за это платишь и когда он не нужен. На собеседовании архитектора спрашивают именно это: «почему здесь сага, что будет при сбое на третьем шаге, где граница этого сервиса».
Главные источники
- Vlad Khononov, Learning Domain-Driven Design (O’Reilly, 2021) — самая практичная книга про выделение доменов.
- Chris Richardson, Microservices Patterns (Manning, 1-е изд.) и каталог паттернов microservices.io.
- Sam Newman, Building Microservices (2nd ed., 2021) и Monolith to Microservices (2019).
- Michael Nygard, Release It! (2nd ed., 2018) — главы про антипаттерны и паттерны стабильности.
- Martin Kleppmann, Designing Data-Intensive Applications — фундамент под модули 3.4 и 3.5.
Критерий завершения блока
Для системы, которую знаешь изнутри (обезличенно), сделать: карту контекстов, схему развёртывания с gateway и балансировщиками, одну сагу с компенсациями и таблицей отказов, список политик устойчивости для внешних вызовов. Это заготовка итогового проекта.