Architecture back-end

Microservice de Commandes/Factures Basé sur les Événements

Une architecture de microservices hautement évolutive utilisant la conception basée sur le domaine et le modèle de boîte d'envoi pour garantir une livraison fiable des messages.

The challenge

Dans un système distribué, garantir la cohérence des données sur plusieurs services sans compter sur des transactions distribuées lentes (validations en deux phases) constitue un obstacle architectural majeur. Le client a été confronté à des messages perdus et à des états incohérents lors d'événements à fort trafic.

The solution

Nous avons repensé le flux principal des commandes et des factures à l’aide d’une architecture basée sur les événements. En implémentant le modèle Transactional Outbox, nous avons garanti la livraison d'au moins une fois le message à Kafka/RabbitMQ. Nous avons conçu tous les consommateurs pour qu'ils soient idempotents, garantissant que les messages en double n'entraîneraient pas de factures en double ou un état corrompu.