Hi Qian Liu,
I would say Axon is paralleled with a Service (Aggregate’s CommandHandlers and EventSourcingHandlers) and Repository (After EventSourceHandler, event is persisted in Event Store) layer. Your flow will go to one or both of the following paths after Command -> Aggregate’s EventSourcingHandler -> Publish to Event Bus.
- Update aggregate values, and store event in event store. (this one always happens)
- Event is caught by @EventHandlers, and for example, notification is sent, event is persisted in a relational database, data warehouse, etc… (this is of course, optional, and depends on your usages)