Источник
Краткий обзор на русском
Мой разбор книги на Tell Me About Tech
Microservice Patterns and Best Practices
Авторы: Vinicius Feitosa Pacheco
Издательство: Packt Publishing, 2018
Объём: 366 страниц
Паттерны CQRS, Event Sourcing, стратегии коммуникации и best practices для масштабируемых микросервисов от Vinicius Feitosa Pacheco.
ОригиналСвязанная тема
Monolith to Microservices
Детальные паттерны миграции от Sam Newman
От монолита к микросервисам
Книга начинается с анализа эволюции архитектурных подходов. Монолитные приложения отлично работают на старте, но слово "успех" становится проблемой — когда система растёт, появляются сложности с масштабированием, деплоем и поддержкой.
Эволюция архитектурных паттернов
Преимущества микросервисов
Связанная книга
Building Microservices
Фундаментальный труд Sam Newman о микросервисах
Ключевые паттерны
Автор детально разбирает паттерны, которые помогают решить типичные проблемы распределённых систем:
CQRS
Command Query Responsibility Segregation — разделение чтения и записи
Event Sourcing
Хранение всех изменений как последовательности событий
Event-Driven
Асинхронная коммуникация через события
Circuit Breaker
Защита от каскадных отказов
API Gateway
Единая точка входа для клиентов
Saga Pattern
Распределённые транзакции через события
CQRS и Event Sourcing
CQRS (Command Query Responsibility Segregation)
Разделение модели на две части: Command для записи и Query для чтения. Это позволяет оптимизировать каждую часть независимо.
- Разные модели данных для чтения и записи
- Независимое масштабирование read/write
- Оптимизация под конкретные use cases
Event Sourcing
Вместо хранения текущего состояния, храним все события, которые привели к этому состоянию. Это даёт полную историю изменений.
- Полный audit log из коробки
- Возможность replay событий
- Temporal queries (состояние на любой момент времени)
💡 CQRS и Event Sourcing часто используются вместе, но это независимые паттерны. Можно применять CQRS без Event Sourcing и наоборот.
Паттерны интеграции
Enterprise Integration Patterns
Классика интеграции: messaging, routing, transformation
Стратегии коммуникации
Синхронная коммуникация
REST, gRPC — клиент ждёт ответа от сервера.
Асинхронная коммуникация
Message queues, event streaming — fire-and-forget.
Практические примеры из книги
Книга содержит несколько практических примеров построения микросервисных систем с использованием разных технологий:
Python + nameko
Микросервисный фреймворк для Python с RPC и event-driven паттернами.
Go + gRPC
Высокопроизводительные сервисы с Protocol Buffers.
Event Streaming
Kafka/RabbitMQ для асинхронной коммуникации.
