Los eventos CQRS no contienen los detalles necesarios para actualizar el modelo de lectura

Hay una cosa sobre CQRS que no entiendo: cómo actualizar el modelo de lectura cuando el evento provocado no contiene los detalles necesarios para actualizar el modelo de lectura.

Desafortunadamente, este es un escenario bastante común.

Ejemplo: agrego un usuario a un grupo, así que envío un comando addUserToGroup (userId, groupId). Esto se recibe, se maneja con el controlador de comandos, se crea, almacena y publica el evento userAddedToGroup.

Ahora, un controlador de eventos recibe este evento y los dos ID. Ahora habrá una vista que enumera a todos los usuarios con los nombres de los grupos en los que están. Para actualizar el modelo de lectura para esa vista, necesitamos el ID de usuario (que tenemos) y el nombre del grupo (que no tenemos) t tiene, solo tenemos su id).

Entonces la pregunta es: ¿Cómo manejo este escenario?

Actualmente, me vienen a la mente cuatro opciones, todas con sus desventajas específicas:

El modelo de lectura pregunta al dominio. => Prohibido, y ni siquiera posible, ya que el dominio solo tiene un comportamiento, no un estado (público).

El modelo de lectura lee el nombre del grupo de otra tabla en el modelo de lectura. => Funciona, pero ¿y si no hay una tabla coincidente?

Agregue los datos necesarios al evento. => No funciona, ya que esto significa que también tuve que actualizar todos los eventos anteriores, y no puedo prever qué datos puedo necesitar algún día.

No maneje el evento a través de un controlador de eventos "habitual", pero inicie un proceso ETL en segundo plano que se ocupa del almacén de eventos, crea los datos necesarios y escribe el modelo de lectura. => Funciona, pero para mí esto parece un poco demasiado elevado para un escenario tan simple.

Entonces, la pregunta es: ¿Cómo trato este escenario correctamente?

Respuestas a la pregunta(3)

Su respuesta a la pregunta