RE: lots of repetition in Aggregate root code

My assumption about Gmail is that it’s just a log of messages sent to you. Conversations are an artifice created by the client, or at least, downstream from your inbox. Each recipient gets a copy of the message.

There’s no coupling except for the pointers used for replies.

I’m guessing.

You could do something similar by storing message events and building various features, like conversations, as event reactions.

Yeah my guess would be a chat message would ids of the participants not create them as part of it. If you take gmail as an example there are multiple steps (create an account) invite to chat etc.

Yes, this makes sense. After some considerable thought last night, it occurred to me that the issue was a modeling one.