Modèles d'intégration d'entreprise
Nous mettons en œuvre des modèles d'intégration éprouvés pour des architectures fiables et capables de monter en charge :
Architecture événementielle
Modèle event sourcing
Stocker l'état de l'application comme une séquence d'événements. Les avantages incluent :
- Piste d'audit complète de tous les changements d'état
- Capacité à reconstruire l'état en rejouant les événements
- Requêtes temporelles (voir l'état à n'importe quel moment)
- Prise en charge des microservices événementiels
Mise en œuvre : Event Hubs pour l'ingestion, Event Grid pour le routage, Cosmos DB pour le stockage d'événements
CQRS (Séparation des Responsabilités Commande/Requête)
Séparer les opérations de lecture et d'écriture pour des performances optimisées :
- Modèle d'écriture optimisé pour la cohérence et la validation
- Modèles de lecture dénormalisés pour les performances de requête
- Mise à l'échelle indépendante des charges de lecture et d'écriture
- Différents magasins de données pour les commandes et les requêtes
Mise en œuvre : Service Bus pour les commandes, Event Grid pour la synchronisation, SQL/Cosmos pour les modèles de lecture
Modèle saga pour les transactions distribuées
Gérer les processus métier de longue durée à travers plusieurs services :
- Chorégraphie : Les services publient des événements et réagissent aux événements des autres
- Orchestration : Un coordinateur central gère l'exécution de la saga
- Compensation : Annuler les étapes terminées si la saga échoue
- Cohérence éventuelle à travers les systèmes distribués
Mise en œuvre : Durable Functions pour l'orchestration, Service Bus pour une messagerie fiable
Une saga en action
Lorsqu'une étape d'un processus multi-systèmes échoue, les étapes déjà terminées sont annulées dans l'ordre inverse, afin qu'aucun système ne reste à moitié mis à jour.
Une saga de commande avec compensation
Créer la commande
Order API
Réserver le stock
Inventory
Encaisser le paiement
Payments
Réserver l'expédition
Carrier
Modèles de messagerie
- Requête-Réponse : Communication synchrone avec corrélation de réponse
- Publication-Abonnement : Distribution de messages un-à-plusieurs avec des topics
- Consommateurs concurrents : Plusieurs workers traitant les messages d'une file d'attente
- Routage de messages : Routage basé sur le contenu avec filtres et abonnements
- File de priorité : Traiter d'abord les messages à haute priorité
- Claim check : Stocker les charges utiles volumineuses en externe, passer la référence dans le message