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

Събитийно-ориентирана Микроуслуга за Поръчки

Силно мащабируема микросервизна архитектура, използваща управляван от домейн дизайн и модел на изходяща кутия, за да гарантира надеждна доставка на съобщения.

The challenge

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

The solution

Ние преработихме основната поръчка и потока на фактурите, използвайки управлявана от събития архитектура. Чрез прилагането на модела Transactional Outbox ние гарантирахме поне веднъж доставка на съобщение до Kafka/RabbitMQ. Проектирахме всички потребители да бъдат идемпотентни, като гарантираме, че дублиращите се съобщения няма да доведат до дублиране на фактури или повредено състояние.