Eventos CQRS não contêm detalhes necessários para atualizar o modelo de leitura

Há uma coisa sobre o CQRS que não obtenho: Como atualizar o modelo de leitura quando o evento gerado não contém os detalhes necessários para atualizar o modelo de leitura.

Infelizmente, este é um cenário bastante comum.

Exemplo: eu adiciono um usuário a um grupo, então eu envio um comando addUserToGroup (userId, groupId). Isso é recebido, manipulado pelo manipulador de comando, o evento userAddedToGroup é criado, armazenado e publicado.

Agora, um manipulador de eventos recebe esse evento e os dois IDs. Agora, haverá uma visão que lista todos os usuários com os nomes dos grupos nos quais eles estão. Para atualizar o modelo de leitura para essa visão, precisamos do ID do usuário (que temos) e do nome do grupo (que não usamos). t temos, só temos o seu id).

Então a questão é: como eu lidei com esse cenário?

Atualmente, quatro opções vêm à minha mente, todas com suas desvantagens específicas:

O modelo de leitura pergunta ao domínio. => Proibido, e nem mesmo possível, como o domínio só tem comportamento, nenhum estado (público).

O modelo de leitura lê o nome do grupo de outra tabela no modelo de leitura. => Funciona, mas e se não houver uma tabela correspondente?

Adicione os dados necessários ao evento. => Não funciona, pois isso significa que eu tive que atualizar todos os eventos anteriores também, e não posso prever quais dados eu posso precisar um dia.

Não manipule o evento por meio de um manipulador de eventos "usual", mas inicie um processo ETL em segundo plano que lide com o armazenamento de eventos, crie os dados necessários e grave o modelo de leitura. => Funciona, mas para mim isso parece um pouco sobrecarregado demais para um cenário tão simples.

Então, a pergunta é: como faço para lidar com esse cenário corretamente?

questionAnswers(3)

yourAnswerToTheQuestion