Event Sourcing Workflow
patterns
Event sourcing pattern with event capture, event store persistence, aggregate reconstruction, snapshot optimization, and temporal state queries.
patterns
CQRS (Command Query Responsibility Segregation) pattern with separate command and query paths, domain event publishing, read model synchronization, and DTO transformation.
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"]
}
patterns
Event sourcing pattern with event capture, event store persistence, aggregate reconstruction, snapshot optimization, and temporal state queries.
patterns
Saga orchestration pattern for distributed transactions across Order, Payment, and Shipping services with automatic compensation rollback on failures.
patterns
This workflow models comparing two versions to see which performs better.
patterns
API Gateway pattern with request authentication, rate limiting, request routing to backend services, response aggregation, and error handling.
patterns
User authentication workflow with credential validation, MFA challenge, JWT token generation, session creation, and failed attempt tracking.