Creación de Consumer de Eventos
Command: yo codedesignplus:microservice consumer
Este comando se utiliza para crear un consumer de eventos dentro de un microservicio existente. Los consumers de eventos son componentes que reaccionan a eventos publicados por otros microservicios o componentes dentro del mismo microservicio, realizando una acción específica en respuesta a dichos eventos. Este comando facilita la generación de la estructura básica para definir un consumer de eventos en tu microservicio.
Prerrequisitos
- Instalar Node.js y npm instalados.
- Instalar Yeoman (
npm install -g yo
). - Instalar el generador
codedesignplus:microservice
. - Tener un microservicio existente creado con:
- CRUD:
codedesignplus:microservice
- Custom:
codedesignplus:microservice
.
- CRUD:
- Tener un evento de dominio que se consumirá.
Conceptos Clave
- Consumer de Eventos: Un componente que se suscribe a eventos y realiza una acción específica en respuesta a dichos eventos.
- Arquitectura Orientada a Eventos: Los consumers de eventos son un componente clave en la arquitectura orientada a eventos, permitiendo que los sistemas reaccionen a los cambios de estado de manera asíncrona y desacoplada.
- Desacoplamiento: Los consumers de eventos reducen el acoplamiento entre los componentes de un sistema, ya que los componentes no necesitan conocer los detalles de implementación de los productores de eventos.
- Asincronía: Los consumers de eventos suelen ejecutar sus acciones de manera asíncrona, permitiendo que los componentes que publican los eventos no se bloqueen.
Sintaxis del Comando
El comando yo codedesignplus:microservice consumer
tiene la siguiente sintaxis:
yo codedesignplus:microservice consumer \ --organization "<organization_name>" \ --microservice "<microservice_name>" \ --consumer-name "<consumer_name>" \ --consumer-aggregate "<aggregate_name>" \ --consumer-action "<consumer_action>" \ --consumer-microservice "<consumer_microservice>"
yo codedesignplus:microservice consumer ` --organization "<organization_name>" ` --microservice "<microservice_name>" ` --consumer-name "<consumer_name>" ` --consumer-aggregate "<aggregate_name>" ` --consumer-action "<consumer_action>" ` --consumer-microservice "<consumer_microservice>"
--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á el consumer de eventos.
--consumer-name
- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del evento que se consumirá.
--consumer-aggregate
- Tipo:
string
- Obligatorio: Sí
- Descripción: El nombre del agregado al que pertenece el evento que se consumirá.
--consumer-action
- Tipo:
string
- Obligatorio: Sí
- Descripción: La acción que realizará el consumer en respuesta al evento.
--consumer-microservice
- Tipo:
string
- Obligatorio: No
- Descripción: El nombre del microservicio que publica el evento que se consumirá.
Ejemplos de Uso
Este ejemplo crea un consumer de eventos que reacciona al evento EmailVerified
del microservicio ms-security
para enviar un correo de bienvenida en el microservicio user
de la organización Acme
.
yo codedesignplus:microservice consumer \ --organization "Acme" \ --microservice "User" \ --consumer-name "EmailVerified" \ --consumer-aggregate "User" \ --consumer-action "send-welcome-email" \ --consumer-microservice "ms-security"
yo codedesignplus:microservice consumer ` --organization "Acme" ` --microservice "User" ` --consumer-name "EmailVerified" ` --consumer-aggregate "User" ` --consumer-action "send-welcome-email" ` --consumer-microservice "ms-security"
yo codedesignplus:microservice asyncWorker --organization "Acme"
—microservice “user” --consumer-name "EmailVerified"
—consumer-aggregate “User” --consumer-action "send-welcome-email"
—consumer-microservice “ms-security”
yo codedesignplus:microservice asyncWorker
—organization “Acme”
—microservice “Notifications”
—consumer-name “OrderCreated”
—consumer-aggregate “Order”
—consumer-action “send-notification”
—consumer-microservice “ms-order”
Salida del comando en consola
Tras ejecutar el comando, se generará la estructura base para el consumer de eventos EmailVerified
en el microservicio user
, con la siguiente salida en consola:

Directorios y Archivos Generados
Si exploramos el microservicio con VS Code, veremos la estructura de directorios y archivos generados para el nuevo consumer de eventos:

Resultados de la Ejecución
La ejecución de este comando con los parámetros proporcionados generará la estructura base para un consumer de eventos en el microservicio especificado. Veamos los resultados de la ejecución del comando:
--organization
Flag: --organization "acme"
-
Este parámetro establece el nombre de la organización, que se refleja en los namespaces de los archivos generados para el consumer.
--microservice
Flag: --microservice "user"
-
Este parámetro establece el nombre del microservicio en el que se creará el consumer, reflejándose en los namespaces y ubicaciones de los archivos.
--consumer-name
Flag: --consumer-name "EmailVerified"
-
Este parámetro define el nombre del evento que consumirá el consumer, reflejándose en el nombre de los archivos y clases generados.
--consumer-aggregate
Flag: --consumer-aggregate "User"
-
Este parámetro define el nombre del agregado al que pertenece el evento que se consume, reflejándose en la ubicación de los archivos generados.
--consumer-action
Flag: --consumer-action "send-welcome-email"
-
Este parámetro define la acción que realizará el consumer en respuesta al evento, reflejándose en la creación de un comando específico para la acción.
--consumer-microservice
Flag: --consumer-microservice "user"
-
Este parámetro define el nombre del microservicio que publica el evento que se consumirá, reflejándose en la lógica de consumo de eventos.
Consideraciones Adicionales
- Asegúrate de tener un microservicio existente antes de utilizar este comando.
- El nombre del evento y la acción del consumer deben ser descriptivos.
- Los consumers deben encargarse de realizar una acción en respuesta a un evento, sin modificar el estado de otros agregados directamente.
- Los consumers deben ser idempotentes, es decir, deben poder procesar el mismo evento varias veces sin generar efectos no deseados.
Enlaces Relacionados
- Documentación del arquetipo
CodeDesignPlus.Net.Microservice
- Documentación del SDK
CodeDesignPlus.Net.SDK
- Arquitectura Orientada a Eventos
Conclusión
El comando yo codedesignplus:microservice consumer
facilita la creación de consumers de eventos en tu microservicio, asegurando que la estructura y los patrones de la arquitectura orientada a eventos se apliquen correctamente. Utiliza este comando para definir la forma en que tu microservicio reacciona a los eventos publicados por otros componentes del sistema.