Download uncategorized/patterns/cqrs-workflow/workflow.fz from Jules-OC/flowzap-sequence-workflows: direct link, hf CLI and curl.
- Browser
- Download file 1.88 kB
-
https://huggingface.co/Jules-OC/flowzap-sequence-workflows/resolve/main/uncategorized/patterns/cqrs-workflow/workflow.fz
- Command line
-
hf download hf://Jules-OC/flowzap-sequence-workflows/uncategorized/patterns/cqrs-workflow/workflow.fz
-
curl -L -o workflow.fz https://huggingface.co/Jules-OC/flowzap-sequence-workflows/resolve/main/uncategorized/patterns/cqrs-workflow/workflow.fz
1.88 kB
| Client { # Client Application | |
| n1: circle label:"Start" | |
| n2: rectangle label:"User initiates action" | |
| n3: diamond label:"Read or write?" | |
| n4: rectangle label:"Send command" | |
| n5: rectangle label:"Send query" | |
| n6: rectangle label:"Receive response" | |
| n7: circle label:"End" | |
| n1.handle(right) -> n2.handle(left) | |
| n2.handle(right) -> n3.handle(left) | |
| n3.handle(right) -> n4.handle(left) [label="Write"] | |
| n3.handle(bottom) -> n5.handle(top) [label="Read"] | |
| n4.handle(bottom) -> CommandSide.n8.handle(top) [label="Command"] | |
| n5.handle(bottom) -> QuerySide.n16.handle(top) [label="Query"] | |
| n6.handle(right) -> n7.handle(left) | |
| } | |
| CommandSide { # Command Side | |
| n8: rectangle label:"Validate command" | |
| n9: diamond label:"Command valid?" | |
| n10: rectangle label:"Execute domain logic" | |
| n11: rectangle label:"Persist to write store" | |
| n12: rectangle label:"Publish domain event" | |
| n13: rectangle label:"Return validation error" | |
| n8.handle(right) -> n9.handle(left) | |
| n9.handle(right) -> n10.handle(left) [label="Yes"] | |
| n9.handle(bottom) -> n13.handle(top) [label="No"] | |
| n10.handle(right) -> n11.handle(left) | |
| n11.handle(right) -> n12.handle(left) | |
| n12.handle(bottom) -> EventHandler.n14.handle(top) [label="Event"] | |
| n12.handle(top) -> Client.n6.handle(bottom) [label="Success"] | |
| n13.handle(top) -> Client.n6.handle(bottom) [label="Error"] | |
| } | |
| EventHandler { # Event Handler | |
| n14: rectangle label:"Receive domain event" | |
| n15: rectangle label:"Update read model" | |
| n14.handle(right) -> n15.handle(left) | |
| n15.handle(top) -> QuerySide.n16.handle(bottom) [label="Sync"] | |
| } | |
| QuerySide { # Query Side | |
| n16: rectangle label:"Parse query parameters" | |
| n17: rectangle label:"Query read store" | |
| n18: rectangle label:"Transform to DTO" | |
| n19: rectangle label:"Return results" | |
| n16.handle(right) -> n17.handle(left) | |
| n17.handle(right) -> n18.handle(left) | |
| n18.handle(right) -> n19.handle(left) | |
| n19.handle(top) -> Client.n6.handle(bottom) [label="Data"] | |
| } | |