Bienvenue sur FlowZap, l'application pour créer des diagrammes avec Rapidité, Clarté et Contrôle.

Architecture événementielle par chorégraphie

Architecture

Diagramme d'architecture de chorégraphie événementielle où les microservices se coordonnent par événements sans orchestrateur central, avec les services Commande, Paiement, Inventaire et Expédition réagissant aux événements de domaine les uns des autres. Ce modèle représente le pattern de coordination décentralisée où chaque service ne connaît que ses propres responsabilités et publie des événements pour que d'autres les consomment. Idéal pour les équipes favorisant l'autonomie des services plutôt que le contrôle centralisé des workflows.

Code FlowZap complet

OrderService { # Order Service
n1: circle label:"New Order Received"
n2: rectangle label:"Validate Order"
n3: rectangle label:"Emit OrderCreated Event"
n17: rectangle label:"Receive Payment Confirmation"
n18: rectangle label:"Update Order Status"
n19: circle label:"Order Complete"
n1.handle(right) -> n2.handle(left)
n2.handle(right) -> n3.handle(left) [label="Valid"]
n3.handle(bottom) -> EventBus.n4.handle(top) [label="Publish"]
n17.handle(right) -> n18.handle(left) [label="Confirmed"]
n18.handle(right) -> n19.handle(left)
}
EventBus { # Event Bus
n4: rectangle label:"OrderCreated Topic"
n8: rectangle label:"PaymentConfirmed Topic"
n12: rectangle label:"InventoryReserved Topic"
n16: rectangle label:"ShipmentScheduled Topic"
n4.handle(bottom) -> PaymentService.n5.handle(top) [label="Subscribe"]
n8.handle(top) -> OrderService.n17.handle(bottom) [label="Notify"]
n8.handle(bottom) -> InventoryService.n9.handle(top) [label="Subscribe"]
n12.handle(bottom) -> ShippingService.n13.handle(top) [label="Subscribe"]
}
PaymentService { # Payment Service
n5: rectangle label:"Receive OrderCreated"
n6: rectangle label:"Process Payment"
n7: rectangle label:"Emit PaymentConfirmed"
n5.handle(right) -> n6.handle(left) [label="Charge"]
n6.handle(right) -> n7.handle(left) [label="Success"]
n7.handle(top) -> EventBus.n8.handle(bottom) [label="Publish"]
}
InventoryService { # Inventory Service
n9: rectangle label:"Receive PaymentConfirmed"
n10: rectangle label:"Reserve Stock"
n11: rectangle label:"Emit InventoryReserved"
n9.handle(right) -> n10.handle(left) [label="Allocate"]
n10.handle(right) -> n11.handle(left) [label="Reserved"]
n11.handle(top) -> EventBus.n12.handle(bottom) [label="Publish"]
}
ShippingService { # Shipping Service
n13: rectangle label:"Receive InventoryReserved"
n14: rectangle label:"Schedule Shipment"
n15: rectangle label:"Emit ShipmentScheduled"
n13.handle(right) -> n14.handle(left) [label="Plan Route"]
n14.handle(right) -> n15.handle(left) [label="Scheduled"]
n15.handle(top) -> EventBus.n16.handle(bottom) [label="Publish"]
}

Pourquoi ce workflow ?

Centralized orchestrators become bottlenecks and single points of failure as the number of services grows. Event-driven choreography distributes coordination logic across services, where each service reacts autonomously to events—eliminating the need for a central coordinator and enabling truly independent service deployment.

Comment ça fonctionne

  1. Step 1: The Order Service creates a pending order and publishes an OrderCreated event.
  2. Step 2: The Payment Service subscribes to OrderCreated and processes the payment.
  3. Step 3: On success, a PaymentConfirmed event is published to the event bus.
  4. Step 4: The Inventory Service reacts to PaymentConfirmed by reserving stock.
  5. Step 5: The Shipping Service reacts to InventoryReserved by scheduling shipment.
  6. Step 6: The Order Service listens for saga completion events to update the final order status.

Alternatives

Orchestration-based sagas provide better visibility but create a central coordinator dependency. Choreography is harder to debug but more resilient. This template helps teams understand the event flow in a choreographed system.

Key Facts

Template NameArchitecture événementielle par chorégraphie
CategoryArchitecture
Steps6 workflow steps
FormatFlowZap Code (.fz file)

Modèles associés

Architecture base de données par service pour microservices

Architecture

Diagramme d'architecture base de données par service où chaque microservice possède son propre magasin de données dédié, avec synchronisation événementielle via Kafka pour la cohérence des données inter-services. Ce modèle démontre le principe fondamental d'isolation des données des microservices, montrant comment PostgreSQL et MongoDB coexistent dans une stratégie de persistance polyglotte. Critique pour les architectes imposant l'autonomie des services tout en maintenant la cohérence à terme.

Architecture du pattern Saga par chorégraphie

Architecture

Diagramme d'architecture saga par chorégraphie où les services Commande, Paiement et Inventaire se coordonnent par événements de domaine sans orchestrateur central, chaque service publiant et s'abonnant à des événements qui font avancer la transaction ou déclenchent la compensation. Ce modèle représente l'approche saga décentralisée où les services réagissent de manière autonome aux événements, réduisant les points de défaillance uniques au prix d'une complexité accrue dans le suivi de l'état de la saga. Idéal pour les équipes préférant l'autonomie des services au contrôle centralisé.

Architecture IA-Native Event-Driven Kafka

Architecture

Une architecture IA agentique event-driven qui remplace l'orchestrateur central par des topics Kafka/PubSub : les agents s'abonnent, réagissent et publient de nouveaux événements. Cela aligne les systèmes multi-agents avec la chorégraphie microservices éprouvée et est idéale pour les systèmes temps réel, haut débit et les configurations 'maillage d'agents'.

Orchestration IA - Maillage Event-Driven (Kafka-First)

Architecture

Une architecture maillage d'agents event-driven utilisant un broker d'événements style Kafka. Plusieurs agents s'abonnent à des topics (commandes, alertes, analytique), traitent les événements indépendamment, et publient les résultats sur le bus. Idéal pour le traitement d'événements temps réel et architectures de services découplés.

Architecture de passerelle API pour microservices

Architecture

Diagramme d'architecture de passerelle API pour microservices montrant le routage des requêtes, l'authentification JWT, la limitation de débit, la découverte de services et l'agrégation des réponses à travers des services backend distribués. Ce modèle représente le point d'entrée de tout le trafic client dans un écosystème de microservices, appliquant les politiques de sécurité avant que les requêtes n'atteignent les services internes. Idéal pour les ingénieurs plateforme concevant une infrastructure API évolutive avec des préoccupations transversales centralisées.

Architecture Backend-for-Frontend (BFF) pour microservices

Architecture

Diagramme d'architecture Backend-for-Frontend avec des couches BFF séparées pour les clients web et mobile, chacune optimisant les réponses API pour sa plateforme spécifique tout en partageant des microservices backend communs. Ce modèle montre comment éviter les API universelles en adaptant l'agrégation des données et l'optimisation des charges utiles par type de client. Recommandé pour les équipes servant plusieurs plateformes frontend depuis un backend microservices partagé.

Retour à tous les modèles