Hi Pavel, Sam,
I’d say the naming depends on whether both aggregates reside/originate from the same ubiquitous language.
Thus, if the language is identical, then the concepts are identical, which can be reflected in the event naming.
However, from a practical stand point, I’d imagine you’d like to pull them apart.
You could do this either by changing the class name, true.
What you could also do, is have Event interfaces per Aggregate type for example, which you’d implement in the events you’d actually publish.
For example, the Order in Book which dispatches an OrderAcceptedEvent could implement an BookEvent and OrderEvent interface.
Quite similarly, you could do this for the Service context as well.
Doing so keeps the name identical, but makes it specific from a coding perspective which type it is.
This is my two cents to the situation.