I'm doing alone session with Event Storming for my application that I plan to build with DDD approach later on. Event Storming session is for learning purposes.
My application domain logic is rather simple one. The application is called - "Vehicle Maintenance Management System" (VMM System). Below there are some general rule and logic of the application:
- User can register, sign in, reset his password and update some basic information about the account, so some really basic user management logic.
- User can add/remove/update his car data (so typical CRUD operations here).
- The main goal of the application is that user can replace some car's parts to have a valid information about the car parts that are used in the vechicle. The system can notify about some part replacement deadlines based on the car's mileage or date.
So I did an Event Storming session contained Big Picture and Level Processing steps. The result of my session is on the below screenshot:
Here is a legend for my colours:
My question is am I doing that in a right way? Do you see any things that can be improved in my session? What should I do next?
I've found four aggregates:
- User
- Cars management
- Parts management
- Notification
In my opinion there should be exposed two aggregate roots:
- User
- Can management (which uses Parts Management aggregate to operate on car's parts. User should not be able to access Parts Management aggregate directly)
Am I thinking in a correct way here? I would like to understand that as much as possible - any tips are really appreciated :)