Skip to content

Creación de Evento de Dominio

Command: yo codedesignplus:microservice domainEvent

Este comando se utiliza para crear uno o más eventos de dominio dentro de un microservicio existente. En el contexto de Domain-Driven Design (DDD), los eventos de dominio son representaciones de algo que ha ocurrido en el dominio del negocio. Estos eventos son importantes para la comunicación entre diferentes partes del sistema y para la implementación de patrones como la arquitectura orientada a eventos. Este comando facilita la generación de la estructura básica para definir eventos de dominio en tu microservicio.

Prerrequisitos

Conceptos Clave

  • Evento de Dominio (Domain Event): En DDD, un evento de dominio es un registro de algo significativo que ha ocurrido en el dominio del negocio.
  • Inmutabilidad: Los eventos de dominio son inmutables, lo que significa que una vez que se han producido, no se pueden cambiar.
  • Comunicación: Los eventos de dominio se utilizan para comunicar cambios de estado entre diferentes agregados o microservicios.
  • Arquitectura Orientada a Eventos: Los eventos de dominio son un componente clave de la arquitectura orientada a eventos, permitiendo que los sistemas reaccionen a los cambios de estado.
  • DDD: Domain-Driven Design es un enfoque de desarrollo de software que modela el software alrededor del dominio del negocio. Los eventos de dominio son un concepto central en DDD.

Sintaxis del Comando

El comando yo codedesignplus:microservice domainEvent tiene la siguiente sintaxis:

Terminal window
yo codedesignplus:microservice domainEvent \
--organization "<organization_name>" \
--microservice "<microservice_name>" \
--aggregate "<aggregate_name>" \
--domainEvents "<domain_event_names>"

--organization

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre de la organización a la que pertenece el microservicio.

--microservice

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre del microservicio donde se crearán los eventos de dominio.

--aggregate

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: El nombre del agregado al que pertenecen los eventos de dominio.

--domainEvents

  • Tipo: string
  • Obligatorio: Sí
  • Descripción: Una lista de nombres de eventos de dominio separados por comas que se crearán.

Ejemplos de Uso

Este ejemplo crea tres eventos de dominio, UserAccountCreated, UserAccountUpdated y UserPreferenceUpdated, asociados al agregado User en el microservicio users de la organización acme.

Terminal window
yo codedesignplus:microservice domainEvent \
--organization "Acme" \
--microservice "User" \
--aggregate "User" \
--domainEvents "UserAccountCreated,UserAccountUpdated,UserPreferenceUpdated"

Salida del comando en consola

Tras ejecutar el comando, se generarán las estructuras base para los eventos de dominio UserAccountCreated, UserAccountUpdated y UserPreferenceUpdated en el microservicio users, con la siguiente salida en consola:

Archetype

Directorios y Archivos Generados

Si exploramos el microservicio con VS Code, veremos la estructura de directorios y archivos generados para los nuevos eventos de dominio:

Archetype

Resultados de la Ejecución

La ejecución de este comando con los parámetros proporcionados generará la estructura base para uno o más eventos de dominio en el microservicio especificado. Veamos los resultados de la ejecución del comando:

--organization

Flag: --organization "acme"

  1. Este parámetro establece el nombre de la organización, que se refleja en los namespaces de los archivos generados para los eventos de dominio.

    Archetype

--microservice

Flag: --microservice "users"

  1. Este parámetro establece el nombre del microservicio en el que se crearán los eventos de dominio, reflejándose en los namespaces y ubicaciones de los archivos.

    Archetype

--aggregate

Flag: --aggregate "User"

  1. Este parámetro define el nombre del agregado al que pertenecen los eventos de dominio, reflejándose en la ubicación de los archivos generados.

    Archetype

--domainEvents

Flag: --domainEvents "UserAccountCreated,UserAccountUpdated,UserPreferenceUpdated"

  1. Este parámetro define los nombres de los eventos de dominio que se crearán, generando los archivos correspondientes en la capa de dominio.

    Archetype

Consideraciones Adicionales

  • Asegúrate de tener un microservicio existente y un agregado definido antes de utilizar este comando.
  • Utiliza nombres descriptivos para tus eventos de dominio, reflejando lo que ha ocurrido en el dominio.
  • Los eventos de dominio deben ser inmutables y representar un hecho que ya ha ocurrido.
  • Los eventos de dominio deben ser asociados a un agregado.

Enlaces Relacionados

Conclusión

El comando yo codedesignplus:microservice domainEvent facilita la creación de nuevos eventos de dominio en tu microservicio, asegurando que la estructura y los patrones DDD se apliquen correctamente. Utiliza este comando para modelar tu dominio de manera coherente y mantenible.