Notre vérificateur de conformité intègre désormais la vérification du Règlement européen sur l'intelligence artificielle (AI Act) ! En savoir plus.

Flux de travail de transactional outbox

Ce workflow modélise l’écriture de données et la publication de messages dans une seule transaction.

Code FlowZap complet

Copiez et collez le code FlowZap suivant dans un projet de votre compte FlowZap pour voir ce diagramme.

user { # User
  n1: circle label:"Start Transactional Outbox"
  n5: rectangle label:"Record Transactional Outbox outcome"
  n9: rectangle label:"Monitor Transactional Outbox status"
  n13: circle label:"End Transactional Outbox"
  n1.handle(bottom) -> app.n2.handle(top)
  n1.handle(bottom) -> service.n3.handle(top)
  n1.handle(bottom) -> database.n4.handle(top)
  n1.handle(right) -> n5.handle(left)
  n1.handle(bottom) -> app.n6.handle(top)
  n1.handle(bottom) -> service.n7.handle(top)
  n1.handle(bottom) -> database.n8.handle(top)
  n1.handle(bottom) -> app.n10.handle(top)
  n1.handle(bottom) -> service.n11.handle(top)
  n1.handle(bottom) -> database.n12.handle(top)
  n9.handle(right) -> n13.handle(left)
  n5.handle(right) -> n13.handle(top)
  n1.handle(right) -> n9.handle(bottom)
}

app { # App
  n2: rectangle label:"Receive Transactional Outbox event"
  n6: rectangle label:"Monitor Transactional Outbox status"
  n10: rectangle label:"Monitor Transactional Outbox status"
  n10.handle(right) -> user.n13.handle(bottom)
  n6.handle(right) -> user.n13.handle(bottom)
  n2.handle(right) -> user.n13.handle(bottom)
}

service { # Service
  n3: rectangle label:"Validate Transactional Outbox conditions"
  n7: rectangle label:"Monitor Transactional Outbox status"
  n11: rectangle label:"Monitor Transactional Outbox status"
  n11.handle(right) -> user.n13.handle(bottom)
  n7.handle(right) -> user.n13.handle(bottom)
  n3.handle(right) -> user.n13.handle(bottom)
}

database { # Database
  n4: diamond label:"Execute Transactional Outbox action"
  n8: rectangle label:"Monitor Transactional Outbox status"
  n12: diamond label:"Monitor Transactional Outbox status"
  n12.handle(right) -> user.n13.handle(bottom)
  n8.handle(right) -> user.n13.handle(bottom)
  n4.handle(right) -> user.n13.handle(bottom)
}

Modèles associés

Retour à tous les modèles