Бэкэнд-архитектура

Событийно-ориентированный микросервис заказов/счетов

Высокомасштабируемая микросервисная архитектура, использующая доменно-ориентированный дизайн и шаблон исходящих сообщений, гарантирующая надежную доставку сообщений.

The challenge

В распределенной системе обеспечение согласованности данных между несколькими службами без использования медленных распределенных транзакций (двухфазных фиксаций) является серьезным архитектурным препятствием. Клиент сталкивался с потерей сообщений и нестабильными состояниями во время событий с высоким трафиком.

The solution

Мы перепроектировали основной поток заказов и счетов, используя архитектуру, управляемую событиями. Реализуя шаблон Transactional Outbox, мы гарантировали доставку сообщения хотя бы один раз в Kafka/RabbitMQ. Мы сделали всех потребителей идемпотентными, гарантируя, что дублирующиеся сообщения не приведут к дублированию счетов или повреждению состояния.