my system has language of "contact" sort of "ghost user" have information on - it's validation rules slim , it's state largely contact information. have concept of "user" fully-vetted , registered user. think of "user" fleshed out "contact".
the lifecycle trying capture "contact" replaced "user" once registers "contact"s information.
we have other aggregate roots in system make reference "contactid" pointing uuid of "contact". when "contact" registers, we'd use new concept of "user" represent them in domain , "user" has it's own "userid" uuid.
- how can keep relationships still reference "contact" via contactid, reference "user" via userid?
- is there fundamental problem trying transition aggregate one?
- if so, how should model particular lifecycle of "contact" -> "registered user"?
- if answer merge 2 ideas single aggregate root, how can keep domain objects being valid @ times, despite "user" not being valid until "contact" registers?
as side note, using cqrs/es overall architecture.
thanks!
what describing not strange since happens time.
you have shoppingcart
becomes quote
becomes order
becomes invoice
.
trying merge concepts leads pain , suffering.
i suggest keeping them separate , handling them own life-cycle since may seem closely related do appear concepts distinct each other.
there may clue in 'ghost user'. entity/ar after hasn't been defined. there going different ways of handling concept depending on how being used. may simple value object representing wither of 2 source entities.
Comments
Post a Comment