A B Testing Workflow
patterns
This workflow models comparing two versions to see which performs better.
patterns
This workflow models processing each message safely only once.
user { # User
n1: circle label:"Start Idempotent Consumer"
n4: rectangle label:"Execute Idempotent Consumer action"
n7: rectangle label:"Monitor Idempotent Consumer status"
n10: circle label:"End Idempotent Consumer"
n1.handle(bottom) -> app.n2.handle(top) [label="Success"]
n4.handle(bottom) -> app.n5.handle(top) [label="Valid"]
n7.handle(bottom) -> app.n8.handle(top) [label="Next"]
}
app { # App
n2: rectangle label:"Receive Idempotent Consumer event"
n5: rectangle label:"Record Idempotent Consumer outcome"
n8: diamond label:"Monitor Idempotent Consumer status"
n2.handle(bottom) -> service.n3.handle(top)
n5.handle(bottom) -> service.n6.handle(top)
n8.handle(bottom) -> service.n9.handle(top)
n8.handle(right) -> user.n7.handle(right) [label="Retry/Rejected"]
}
service { # Service
n3: rectangle label:"Validate Idempotent Consumer conditions"
n6: rectangle label:"Monitor Idempotent Consumer status"
n9: rectangle label:"Monitor Idempotent Consumer status"
n9.handle(right) -> user.n10.handle(bottom)
n6.handle(right) -> user.n7.handle(left)
n3.handle(right) -> user.n4.handle(left)
}
patterns
This workflow models comparing two versions to see which performs better.
patterns
This workflow models checking user permissions before actions run.
patterns
This workflow models an async operation that notifies a callback when done.
patterns
This workflow models keeping large payloads external and only passing references.
patterns
This workflow models rolling back work when a later step fails.