Let's assume there are multiple contexts with the same logical entity but with different notions. Creating such an entity should have the side effect that in all other contexts the same logical entity should be created.
I do this simply by sending a domain event which contains all required fields for all contexts. The issue with that is, that the context which initially creates the new entity is tightly coupled to all other context as it has to build the correct domain event with all required fields from other contexts. How would I remove that coupling?
Let's say for a training management software I discovered the contexts Finance and Training. Both contexts share the logical entity Student. While in Finance a Student has an IBAN number, in Training this information is useless.
Now I want to implement the use case "Register student". This registration should be atomic, i.e. the entity should exist in all contexts. Actually I therefore created a further context Registration. I'm now concerned that the context which initially creates the entity needs to know details from every other context about this entity.
This somehow collides with the idea that a context should create a cohesive model. In this case Teaching and Finance are cohesive, but Registration is not. And no matter where I would shift the creation of that entity, I'm always coupled to other contexts.
Let's assume I will change the entity in the Finance context by adding a further field for e.g. credit. I now have to touch Finance and the Registration context.
Do you see a way to avoid that coupling?