I've been reading about Event Sourcing and DDD for a several weeks. So, I need to create a ubiquitous language. What does it exactly mean? I need to create some library defining some domain classes, doesn't it?
So, I would have created an mydomain-language-artifact.jar
artifact and it should be used by my services A
and B
.
- What exactly should this artifact contain? Domain classes (Order, OrderLine, Customer...).
- Should it contain
Event
,Value Objects
orAggregates
classes?
So, guess everything is working fine, and my domain model changes, I mean, Customer
has a new alias
field. So it means I should change my mydomain-language-artifact.jar
adding this change on Customer
class, shouldn't it?
So it means likely Events
, Value Objects
and Aggregates
will change as well. Probably, CustomerAddedEvent
will contain an alias
field. So, what about the pervious event stored in Event Store? How could I replay them and rebuild my system?