Welcome to FlowZap, the App to diagram with Speed, Clarity and Control.

Routing Slip Workflow

This workflow models having messages carry their own routing instructions.

Full FlowZap Code

Copy and paste the following FlowZap code into a project in your FlowZap account to see this template diagram.

user { # User
  n1: circle label:"Start Routing Slip"
  n5: rectangle label:"Record Routing Slip outcome"
  n9: rectangle label:"Monitor Routing Slip status"
  n13: circle label:"End Routing Slip"
  n1.handle(bottom) -> app.n2.handle(top)
  n5.handle(bottom) -> app.n6.handle(top) [label="Done"]
  n9.handle(bottom) -> app.n10.handle(top)
}

app { # App
  n2: rectangle label:"Receive Routing Slip event"
  n6: rectangle label:"Monitor Routing Slip status"
  n10: rectangle label:"Monitor Routing Slip status"
  n2.handle(bottom) -> service.n3.handle(top) [label="Next"]
  n6.handle(bottom) -> service.n7.handle(top)
  n10.handle(bottom) -> service.n11.handle(top)
}

service { # Service
  n3: rectangle label:"Validate Routing Slip conditions"
  n7: rectangle label:"Monitor Routing Slip status"
  n11: rectangle label:"Monitor Routing Slip status"
  n3.handle(bottom) -> database.n4.handle(top)
  n7.handle(bottom) -> database.n8.handle(top)
  n11.handle(bottom) -> database.n12.handle(top) [label="Success"]
}

database { # Database
  n4: diamond label:"Execute Routing Slip action"
  n8: rectangle label:"Monitor Routing Slip status"
  n12: diamond label:"Monitor Routing Slip status"
  n12.handle(left) -> service.n11.handle(left) [label="Retry/Rejected"]
  n12.handle(right) -> user.n13.handle(bottom)
  n8.handle(right) -> user.n9.handle(left) [label="Processed"]
  n4.handle(left) -> service.n3.handle(left) [label="Retry/Rejected"]
  n4.handle(right) -> user.n5.handle(left)
}

Related templates

Back to all templates