Architettura di back-end

Microservizio Ordini/Fatture Guidato dagli Eventi

Un'architettura di microservizi altamente scalabile che utilizza la progettazione basata sul dominio e il modello Outbox per garantire la consegna affidabile dei messaggi.

The challenge

In un sistema distribuito, garantire la coerenza dei dati tra più servizi senza fare affidamento su transazioni distribuite lente (commit a due fasi) rappresenta un grosso ostacolo architettonico. Il client ha riscontrato messaggi ignorati e stati incoerenti durante eventi a traffico elevato.

The solution

Abbiamo riprogettato il flusso principale degli ordini e delle fatture utilizzando un'architettura basata sugli eventi. Implementando il modello Transactional Outbox, abbiamo garantito la consegna dei messaggi almeno una volta a Kafka/RabbitMQ. Abbiamo progettato tutti i consumatori in modo che siano idempotenti, garantendo che i messaggi duplicati non si traducano in fatture duplicate o in uno stato danneggiato.