By tracing events, domain experts and workshop participants work together to clarify which roles in the business initiate what commands, and what changes occur in the domain model as a result.
Role | Domain Command | Domain Event | Impact | Frequency |
---|---|---|---|---|
Librarian | Add Book | New Book Added | Update book inventory, create book records | Immediate |
User | Create Membership Account | Member Registered | Create member profile, send welcome email | Immediate |
Member | Borrow Book | Book Borrowed | Update book status, record borrowing details | Immediate |
Member | Return Book | Book Returned | Update book status, clear borrowing record | Immediate |
System | Send Overdue Reminder | Overdue Notification | Notify member, calculate fines | Immediate + Daily |
Member | Reserve Book | Book Reserved | Create reservation record, update book status | Immediate |
Member or Librarian | Report Lost Book | Lost Book Reported | Update book status, trigger compensation process | Immediate |
This Event Storming template illustrates the key events and commands within a library management system. Each "event" is associated with its corresponding "command," "trigger," and "action," helping us understand the interactions and dependencies among the system components.
By using this approach, we can better design and optimize the system architecture to ensure smooth coordination between functional modules.