归一化工作流
patterns
此工作流对不同形式的输入进行标准化转换建模。
完整 FlowZap 代码
user { # User
n1: circle label:"Start Normalizer"
n5: rectangle label:"Record Normalizer outcome"
n9: rectangle label:"Monitor Normalizer status"
n13: circle label:"End Normalizer"
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 Normalizer event"
n6: rectangle label:"Monitor Normalizer status"
n10: rectangle label:"Monitor Normalizer 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 Normalizer conditions"
n7: rectangle label:"Monitor Normalizer status"
n11: rectangle label:"Monitor Normalizer 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 Normalizer action"
n8: rectangle label:"Monitor Normalizer status"
n12: diamond label:"Monitor Normalizer status"
n4.handle(left) -> service.n3.handle(left) [label="Retry/Rejected"]
n4.handle(right) -> user.n5.handle(left)
n8.handle(right) -> user.n9.handle(left) [label="Processed"]
n12.handle(left) -> service.n11.handle(left) [label="Retry/Rejected"]
n12.handle(right) -> user.n13.handle(bottom)
}