Callback Pattern Workflow
This workflow models an async operation that notifies a callback when done.
This workflow models escalating issues to higher authority when needed.
user { # User
n1: circle label:"Start Escalation Pattern"
n4: rectangle label:"Execute Escalation Pattern action"
n7: rectangle label:"Monitor Escalation Pattern status"
n10: circle label:"End Escalation Pattern"
n1.handle(bottom) -> app.n2.handle(top)
n4.handle(bottom) -> app.n5.handle(top)
n7.handle(bottom) -> app.n8.handle(top)
}
app { # App
n2: rectangle label:"Receive Escalation Pattern event"
n5: rectangle label:"Record Escalation Pattern outcome"
n8: rectangle label:"Monitor Escalation Pattern status"
n2.handle(bottom) -> service.n3.handle(top)
n5.handle(bottom) -> service.n6.handle(top)
n8.handle(bottom) -> service.n9.handle(top)
}
service { # Service
n3: rectangle label:"Validate Escalation Pattern conditions"
n6: rectangle label:"Monitor Escalation Pattern status"
n9: diamond label:"Monitor Escalation Pattern status"
n3.handle(right) -> user.n4.handle(left) [label="Processed"]
n9.handle(left) -> app.n8.handle(left) [label="Retry/Rejected"]
n9.handle(right) -> user.n10.handle(bottom) [label="Valid"]
n6.handle(right) -> user.n7.handle(left) [label="Success"]
}
This workflow models an async operation that notifies a callback when done.
This workflow models sending alerts via multiple channels.
This workflow models periodically checking status until work is done.
This workflow models taking periodic snapshots of important state.
This workflow models an operation that times out after a delay.