Бекенд архитектура
Събитийно-ориентирана Микроуслуга за Поръчки
Силно мащабируема микросервизна архитектура, използваща управляван от домейн дизайн и модел на изходяща кутия, за да гарантира надеждна доставка на съобщения.
The challenge
В една разпределена система осигуряването на съгласуваност на данните в множество услуги, без да се разчита на бавни разпределени транзакции (двуфазови ангажименти), е основно архитектурно препятствие. Клиентът се сблъска с пропуснати съобщения и непоследователни състояния по време на събития с голям трафик.
The solution
Ние преработихме основната поръчка и потока на фактурите, използвайки управлявана от събития архитектура. Чрез прилагането на модела Transactional Outbox ние гарантирахме поне веднъж доставка на съобщение до Kafka/RabbitMQ. Проектирахме всички потребители да бъдат идемпотентни, като гарантираме, че дублиращите се съобщения няма да доведат до дублиране на фактури или повредено състояние.