Короткий ответ
Микросервисная архитектура — набор независимо развёртываемых сервисов, каждый со своей БД и границами ответственности, взаимодействующих по сети; в отличие от монолита, масштабирование, деплой и отказы изолированы на уровне отдельного сервиса.
Как это работает подробнее
Каждый сервис владеет своими данными и бизнес-логикой, общение идёт через HTTP/gRPC/сообщения, а не через общую память.
Пример кода
Схема
Order Service -- HTTP --> Payment Service
Order Service -- publish event --> Notification Service (через очередь)Что использовать на практике
- Практика. Позволяет командам независимо деплоить и масштабировать части системы, но добавляет сетевые издержки, сложность мониторинга, распределённые транзакции и необходимость версионирования контрактов.
Подводные камни
- Риск. Распределять сервисы по техническим слоям (например, отдельный «DB-сервис»), а не по бизнес-доменам; считать, что микросервисы сами по себе ускоряют разработку.