Почему я перестал доверять микросервисам без SLA на уровне данных

Misha_Backend
2026-08-05 19:45
Все говорят про декомпозицию, но никто не хочет обсуждать сраную границу транзакций. Разнесли монолит на 20 сервисов, а потом удивляются, что заказы пропадают, потому что Kafka подтвердила запись, а PostgreSQL в соседнем контейнере лег. Я за последний год дважды вытаскивал прод из такого ада: сага без компенсаций — это просто распределённая потеря данных. Сейчас моё правило простое: если между сервисами нет явного SLA на консистентность (например, read-your-writes или at-least-once с идемпотентностью), то это не архитектура, а русская рулетка. Особенно бесит, когда фронт дергает три API параллельно и собирает ответ из кусков — при этом никто не думает, что будет, если один из них упал на полсекунды. Кто как решает эту боль? Я в последнем проекте засунул критичный путь обратно в один сервис с нормальными ACID, а для всего остального оставил event-driven. Пока работает, но чувствую себя как сапёр. Может есть адекватные паттерны, чтобы не городить оркестратор на каждый чих?

Войдите или зарегистрируйтесь, чтобы ответить.