Domain-Driven Design
Выделяем bounded contexts, определяем агрегаты, строим карту контекстов. Event Storming с вашей командой. Архитектура до кода.
Монолит не масштабируется, деплой занимает часы, одна ошибка роняет всё? Декомпозируем монолит на микросервисы — Strangler Fig, Domain-Driven Design, Kubernetes. Java, Python, Node.js. Аудит архитектуры — бесплатно за 3 дня.
Выделяем bounded contexts, определяем агрегаты, строим карту контекстов. Event Storming с вашей командой. Архитектура до кода.
Извлекаем сервис за сервисом из монолита. API Gateway маршрутизирует: часть запросов — в монолит, часть — в новый сервис. Без остановки.
Kafka/RabbitMQ для межсервисной коммуникации. Saga pattern для распределённых транзакций. Eventual consistency.
Kubernetes, Helm, Terraform. CI/CD pipeline для каждого сервиса. Независимый деплой — каждый сервис катится отдельно.
Анализ монолита: зависимости, bottleneck'и, bounded contexts. Event Storming с командой. Карта сервисов + план миграции.
Извлекаем самый независимый домен. API Gateway + Strangler Fig. Оба работают параллельно.
Каждые 2-4 недели — новый сервис. Монолит уменьшается, микросервисы растут. Kafka для событий.
Distributed tracing (Jaeger), centralized logging (ELK), Grafana. SLA 99.9% на каждый сервис.
Не всегда. Если команда < 10 человек и нет проблем с масштабированием — модульный монолит может быть лучше. На аудите честно скажем, нужна ли декомпозиция или достаточно рефакторинга.
DDD + bounded contexts до кода. Каждый сервис владеет своими данными (database per service). Асинхронная коммуникация через события вместо синхронных вызовов.
Java/Kotlin (Spring Boot + Spring Cloud) — enterprise-grade. Node.js (NestJS) — быстрая итерация. Python (FastAPI) — ML/data-сервисы. Можно миксовать — каждый сервис на своём стеке.
Первый микросервис — 3-4 недели. Полная декомпозиция среднего монолита (5-10 сервисов) — 3-6 месяцев. Enterprise (10+ сервисов) — 6-12 месяцев.
Проведём Event Storming и покажем, как разделить — бесплатно за 3 дня.