Event Storming
Finding events via Usecase. It's a good way to find events in the system and also a good way to find the boundary of the system.
Event
Order Catalog
Customer can perform the following actions:
- Create a new order
- Event associated: OrderCreated
- Get information of an order
- Event associated: GetOrderById
- Get the delivery progress of an order
- Event associated: GetDeliveryProgressById
Officer and Stoker can perform the following actions:
- Get the delivery progress of customer order
- Event associated:
- GetDeliveryProgress (paging and filtering)
- GetDeliveryProgressById
- Event associated:
- Manage customer order
- Event associated:
- OrderCreated
- OrderUpdated
- OrderDeleted
- GetOrder (paging and filtering)
- GetOrderById
- CountOrders
- GetVehicleByOrderId
- GetDeliveryByOrderId
- GetHubPathByOrderId
- Event associated:
- Manage customer
- Event associated:
- CustomerCreated
- CustomerUpdated
- CustomerDeleted
- GetCustomer (paging and filtering)
- GetCustomerById
- Event associated:
System can perform the following actions:
- Send notification to customer
- Event associated:
- EmailSent
- SmsSent
- Event associated:
Driver Catalog
Sysadmin can perform the following actions:
- Manage staff
- Event associated:
- StaffCreated
- StaffUpdated
- StaffDeleted
- GetStaff (paging and filtering)
- GetStaffById
- CountStaffs
- CountStaffsByPosition
- Event associated:
- Manage vehicle
- Event associated:
- VehicleCreated
- VehicleUpdated
- VehicleDeleted
- GetVehicle (paging and filtering)
- GetVehicleById
- Get delivery
- Event associated:
- GetDelivery (paging and filtering)
- GetDeliveryById
- Event associated:
- Get incident
- Event associated:
- GetIncident (paging and filtering)
- GetIncidentById
- CountIncidents
- Event associated:
- Event associated:
Driver and Shipper can perform the following actions:
- Get vehicle information
- Event associated:
- GetVehicleById
- Event associated:
- Make a delivery
- Event associated:
- DeliveryCreated
- DeliveryUpdated
- DeliveryDeleted
- GetDeliveryById
- Event associated:
- Make an incident report
- Event associated:
- IncidentCreated
- IncidentUpdated
- IncidentDeleted
- GetIncidentById
- Event associated:
System can perform the following actions:
- Send notification to driver
- Event associated:
- EmailSent
- SmsSent
- NotificationSent
- Event associated:
Hub Management
Sysadmin can perform the following actions:
- Manage hub
- Event associated:
- HubCreated
- HubUpdated
- HubDeleted
- GetHub (paging and filtering)
- GetHubById
- Event associated:
- Manage route
- Event associated:
- RouteCreated
- RouteUpdated
- RouteDeleted
- GetRoute (paging and filtering)
- GetRouteById
- Event associated:
- Manage order phase
- Event associated:
- OrderPhaseCreated
- OrderPhaseUpdated
- OrderPhaseDeleted
- GetOrderPhase (paging and filtering)
- GetOrderPhaseById
- Event associated:
System can perform the following actions:
- Calculate the route between hubs
- Event associated:
- RouteCreated
- RouteUpdated
- Event associated:
- Generate order phase:
- Event associated:
- OrderPhaseCreated
- Event associated:
- Get nearest hub
- Event associated:
- GetNearestHub
- Event associated:
Access Control
Officer, Shipper, Driver and Stoker can perform the following actions:
- Authenticate
- Event associated:
- Login
- Logout
- ChangePassword
- Event associated:
Sysadmin can perform the following actions:
- Create a new account
- Event associated:
- AccountCreated
- AccountUpdated
- AccountDeleted
- GetAccount (paging and filtering)
- GetAccountById
- Event associated:
Collection of Domain Events
In the above diagram, we can see that the domain events are listed in the middle of the diagram. The domain events are the events that are raised by the domain objects. The domain objects are the objects that are part of the domain model. The domain model is the model that is used to represent the domain.
Bounded Context
In the provided diagram, it's apparent that the domain events are closely tied to the domain model, indicating a strong relationship between the events and the core functionality of the system.
Aggregate
In the above diagram, we can see that the aggregate root is the domain object that is responsible for the domain events. The domain events are the events that are raised by the domain objects. The domain objects are the objects that are part of the domain model. The domain model is the model that is used to represent the domain.
Context Map
In the above diagram, we can see that the domain events are closely tied to the domain model, indicating a strong relationship between the events and the core functionality of the system.
Access Control
In the above diagrams, access control and security considerations play a crucial role in ensuring the integrity, confidentiality, and availability of the logistics tracking and management system. The access control and security considerations are the security controls that are used to protect the logistics tracking and management system from unauthorized access.