sequenceDiagram
participant Customer
participant Database
participant Book_Handler as Book Handler
participant Room
participant Booked_Handler as Booked Handler
participant Email_Service as Email Service
Customer->>Database: Search available rooms
activate Database
Database-->>Customer: Return search results
deactivate Database
Customer->>Book_Handler: Send booking command
activate Book_Handler
Book_Handler->>Room: Check availability
activate Room
Room-->>Book_Handler: Availability response
deactivate Room
alt Room is available
Book_Handler->>Room: Book room
activate Room
Room->>Room: Update state
Room-)Booked_Handler: Raise booked event (async)
activate Booked_Handler
Room-->>Book_Handler: Book response
deactivate Room
Booked_Handler->>Database: Update booking details and availability
deactivate Booked_Handler
Book_Handler-)Email_Service: Send confirmation email to Customer (async)
Book_Handler-)Email_Service: Send notification email to Room Owner (async)
Note over Customer,Email_Service: Booking process completed successfully
else Room not available
Book_Handler-->>Customer: Return error
end
deactivate Book_Handler
Last active
December 9, 2023 17:11
-
-
Save MrAntix/f5473690eae5912b63b76b63b5c0962f to your computer and use it in GitHub Desktop.
Booking Sequence
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment