Представляем изменения в системе как
неизменяемые факты (события), которые пишутся в
надёжный лог (брокер).
Декуплинг по времени: продюсер публикует событие и не ждёт потребителя.
Композиция процессов через
хореографию (реакции на события) или
оркестрацию (саги/стейт-машина).
Управление согласованностью: идемпотентные обработчики, дедупликация, транзакционные пути (EOS), DLQ.
Наблюдаемость: события = журнал фактов → восстановление и анализ.
Транспорт/брокер: Kafka / Pulsar / RabbitMQ / NATS / Azure Event Hubs.
Стиль взаимодействия:- Publish/Subscribe (хореография доменов).
- Команды + события (отдельные топики commands.* и events.*).
- Оркестрация саг (центральный координатор, компенсации).
Паттерны данных:- Outbox + CDC (транзакционная публикация событий из БД).
- Event Sourcing (состояние — это свёртка журнала событий).
- CQRS (отдельно write-модель и read-проекции).
- Schema Registry & эволюция схем (Avro/Protobuf/JSON-Schema).
Обработка потоков:- Kafka Streams / Spark Structured Streaming / Akka Streams / Reactor Kafka.
Гарантии доставки:- at-least-once + идемпотентность,
- effectively/exactly-once для «consume→transform→produce» (транзакции, EOS v2 в Kafka Streams).