System Design Space

    Глава 123

    Обновлено: 9 февраля 2026 г. в 20:31

    Microservice Patterns and Best Practices (short summary)

    Прогресс части0/17

    Источник

    Краткий обзор на русском

    Мой разбор книги на Tell Me About Tech

    Читать статью

    Microservice Patterns and Best Practices

    Авторы: Vinicius Feitosa Pacheco
    Издательство: Packt Publishing, 2018
    Объём: 366 страниц

    Паттерны CQRS, Event Sourcing, стратегии коммуникации и best practices для масштабируемых микросервисов от Vinicius Feitosa Pacheco.

    Microservice Patterns and Best Practices — оригинальная обложкаОригинал

    Связанная тема

    Monolith to Microservices

    Детальные паттерны миграции от Sam Newman

    Читать обзор

    От монолита к микросервисам

    Книга начинается с анализа эволюции архитектурных подходов. Монолитные приложения отлично работают на старте, но слово "успех" становится проблемой — когда система растёт, появляются сложности с масштабированием, деплоем и поддержкой.

    Эволюция архитектурных паттернов

    Monolith
    Единая кодовая база, все бизнес-правила в одном месте
    SOA
    Service-Oriented Architecture с ESB
    Microservices
    Мелкогранулярные независимые сервисы

    Преимущества микросервисов

    Независимый деплой сервисов
    Горизонтальное масштабирование
    Технологическая гибкость (polyglot)
    Изолированные домены ответственности

    Связанная книга

    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 — клиент ждёт ответа от сервера.

    ✅ Простота реализации и отладки
    ✅ Понятная модель request-response
    ⚠️ Связность между сервисами
    ⚠️ Каскадные отказы

    Асинхронная коммуникация

    Message queues, event streaming — fire-and-forget.

    ✅ Слабая связность (loose coupling)
    ✅ Устойчивость к отказам
    ⚠️ Сложность отладки
    ⚠️ Eventual consistency

    Практические примеры из книги

    Книга содержит несколько практических примеров построения микросервисных систем с использованием разных технологий:

    Python + nameko

    Микросервисный фреймворк для Python с RPC и event-driven паттернами.

    Go + gRPC

    Высокопроизводительные сервисы с Protocol Buffers.

    Event Streaming

    Kafka/RabbitMQ для асинхронной коммуникации.

    Главные выводы

    Микросервисы решают проблемы масштабирования, но добавляют сложность
    CQRS и Event Sourcing — мощные, но независимые паттерны
    Выбор между sync и async зависит от требований к consistency
    Circuit Breaker критичен для устойчивости
    Saga Pattern решает проблему распределённых транзакций
    Начинайте с монолита, мигрируйте осознанно

    Связанные материалы

    Где найти книгу

    Packt Publishing
    Оригинал на английском