Power Platform
Intégration Dataverse ↔ ERP : pattern d'event sourcing
Quand Service Bus et CDC ne suffisent plus. Pattern d'intégration testé sur trois projets, code .NET inclus.
Sur les projets Power Platform / Dynamics 365 reliés à un ERP legacy (SAP, AX 2012, Sage X3, Cegid), le pattern d'intégration le plus déployé reste le push synchrone via Azure Service Bus ou Logic Apps. Ça marche tant que le volume est faible et que les deux systèmes répondent rapidement. Quand ce n'est plus le cas, on bascule vers de l'event sourcing.
Le problème du push synchrone
Quand un commercial saisit une commande dans Dataverse, un plugin pousse la commande vers l'ERP via Service Bus. Si l'ERP est en mode batch nocturne ou en reboot, le message reste en queue, le commercial ne le sait pas, le client appelle la semaine suivante en demandant où en est sa commande. Variante pire : le push échoue silencieusement et personne ne le découvre avant le rapprochement comptable du mois suivant.
Le pattern event sourcing
Au lieu de pousser l'état, on publie l'événement. Toute mutation dans Dataverse génère un événement immutable (CommandeCreee, CommandeModifiee, CommandeAnnulee) écrit dans un store dédié — typiquement Azure Cosmos DB ou un topic Event Hub partitionné par tenant.
L'ERP consomme ces événements à son rythme, dans l'ordre. Si l'ERP est down 4h, il reprend là où il s'est arrêté. Si la logique de mapping change, on rejoue l'historique. Si on découvre un bug dans la projection, on reconstruit l'état projeté à partir des événements.
Quand le pattern est rentable
- —Volume > 10 000 mutations / jour avec contraintes d'ordonnancement.
- —ERP en aval avec disponibilité < 99 %.
- —Besoin d'audit traçable des changements (réglementaire, financier, qualité).
- —Plusieurs systèmes consommateurs en aval (BI, MDM, partenaires).
Quand c'est overkill
Volume < 1 000 mutations / jour, un seul consommateur, pas d'enjeu de traçabilité. Restez sur du Service Bus + idempotence côté consommateur. La complexité opérationnelle d'un store d'événements n'est pas neutre — versioning des events, gestion des projections, monitoring spécifique. Ne le déployez que si vous en avez vraiment besoin.
Ce sujet vous concerne ?
Si vous travaillez sur un cas similaire et cherchez un partenaire pour cadrer ou livrer, écrivons-nous.