Filter Workflow
patterns
This workflow models removing items that do not meet criteria.
Full FlowZap Code
user { # User
n1: circle label:"Start Filter"
n2: diamond label:"Receive Filter event"
n5: rectangle label:"Record Filter outcome"
n9: rectangle label:"Monitor Filter status"
n13: circle label:"End Filter"
n1.handle(right) -> n2.handle(left)
n2.handle(bottom) -> service.n3.handle(top) [label="Yes/Approved"]
n2.handle(bottom) -> database.n4.handle(top) [label="No/Rejected"]
n5.handle(bottom) -> app.n6.handle(top)
n9.handle(bottom) -> app.n10.handle(top)
}
app { # App
n6: rectangle label:"Monitor Filter status"
n10: rectangle label:"Monitor Filter status"
n6.handle(bottom) -> service.n7.handle(top)
n10.handle(bottom) -> service.n11.handle(top)
}
service { # Service
n3: rectangle label:"Validate Filter conditions"
n7: rectangle label:"Monitor Filter status"
n11: rectangle label:"Monitor Filter status"
n7.handle(bottom) -> database.n8.handle(top)
n11.handle(bottom) -> database.n12.handle(top)
n3.handle(right) -> user.n5.handle(top)
}
database { # Database
n4: rectangle label:"Execute Filter action"
n8: rectangle label:"Monitor Filter status"
n12: rectangle label:"Monitor Filter status"
n12.handle(right) -> user.n13.handle(bottom)
n8.handle(right) -> user.n9.handle(left)
n4.handle(right) -> user.n5.handle(left)
loop [retry until success] n2 n5 n9 n6 n10 n3 n7 n11 n4 n8 n12
}
Related templates
Callback Pattern Workflow
patterns
This workflow models an async operation that notifies a callback when done.
Compensation Transaction Workflow
patterns
This workflow models rolling back work when a later step fails.
Nested Decisions Workflow
patterns
This workflow models multiple layers of decisions before completion.