What is the color code for Event Storming?

Códigos de Color en Event Storming: Guía Completa

hace 11 años

Valoración: 4.3 (1992 votos)

El Event Storming es una técnica colaborativa y visual poderosa, ampliamente utilizada en el Diseño Guiado por el Dominio (DDD), para explorar y entender sistemas y flujos de trabajo complejos dentro de un dominio empresarial. Esta metodología se basa en la utilización de notas adhesivas de colores para representar diferentes elementos clave, facilitando la identificación de los límites naturales de los microservicios y clarificando las interacciones entre las distintas partes del sistema. Una de las claves del éxito de Event Storming reside en su capacidad para involucrar a todos los miembros del equipo, desde desarrolladores hasta expertos del dominio y stakeholders de negocio, en una sesión dinámica y participativa.

What is aggregate in Event Storming?
To summarize, in Event Storming, aggregates represent logical groupings of domain entities that process commands and generate events while enforcing business rules. They are essential for maintaining consistency and modeling the behavior of complex systems.
Índice de Contenido

¿Qué es Event Storming y por qué usar códigos de color?

En esencia, una sesión de Event Storming reúne a un grupo multidisciplinario para mapear los eventos cruciales que ocurren dentro de un negocio. Durante esta sesión, cada tipo de evento o acción se representa con un color de nota adhesiva diferente. Esta diferenciación cromática no es arbitraria; está diseñada para organizar visualmente la información y facilitar la distinción entre los diversos aspectos del dominio que se está analizando. La utilización de códigos de color aporta claridad y estructura al proceso, permitiendo que los participantes identifiquen rápidamente los diferentes tipos de elementos y sus relaciones.

Imagina, por ejemplo, el desarrollo de una plataforma de comercio electrónico. A través de Event Storming, el equipo puede visualizar de manera conjunta las interacciones entre el cliente, el procesamiento de pagos y la gestión de pedidos. Este proceso ayuda a delimitar los contextos acotados y a determinar dónde tiene sentido implementar microservicios. La codificación por colores se convierte en una herramienta fundamental para desglosar la complejidad del sistema en partes más manejables y comprensibles para todos.

Desglosando los Códigos de Color en Event Storming

La clave para aprovechar al máximo el Event Storming con colores reside en entender qué representa cada color. A continuación, te presentamos un desglose detallado de cómo se utilizan los colores más comunes y su significado dentro de esta técnica:

Notas Adhesivas Naranja: Eventos de Dominio

Las notas adhesivas de color naranja se utilizan para representar los Eventos de Dominio. Estos son sucesos importantes que ya han ocurrido en el sistema y que tienen relevancia para el negocio. Piensa en ellos como hechos consumados, declaraciones de que algo significativo ha pasado. Ejemplos típicos de eventos de dominio en un contexto de comercio electrónico podrían ser: "Pedido Realizado", "Pago Procesado", "Producto Añadido al Carrito" o "Inventario Reservado".

What is the policy in Event Storming?
Event storming is a collaborative workshop technique that helps you discover and model the business processes, events, and policies of your domain. It is a great way to align the domain experts, developers, and stakeholders on a common vision and language.

Estos eventos de dominio son cruciales porque marcan puntos de inflexión en el flujo de trabajo y a menudo indican transiciones entre diferentes partes del sistema. Por ejemplo, el evento "Pedido Realizado" señala el paso del carrito de compras al proceso de gestión de pedidos.

Notas Adhesivas Azules: Comandos

Las notas adhesivas de color azul se destinan a los Comandos. Los comandos son acciones iniciadas por un usuario o por el propio sistema que provocan la ocurrencia de eventos de dominio. En esencia, son las instrucciones que se dan al sistema para que realice una acción. Ejemplos de comandos podrían ser: "Realizar Pedido", "Procesar Pago", "Añadir Producto al Carrito" o "Actualizar Información de Cliente".

Los comandos siempre preceden a los eventos de dominio. Existe una relación de causa y efecto entre ellos: un comando se ejecuta con la intención de generar uno o varios eventos de dominio. En el lienzo de Event Storming, las notas azules de comandos suelen colocarse antes de las notas naranjas de eventos, mostrando esta secuencia lógica.

Notas Adhesivas Amarillas: Agregados

Las notas adhesivas de color amarillo representan los Agregados. Los agregados son entidades clave o grupos de entidades que encapsulan la lógica de dominio y gestionan el estado del sistema. En términos de DDD, un agregado define un límite de consistencia transaccional. Piensa en ellos como los centros de responsabilidad que mantienen la integridad de los datos y aplican las reglas de negocio.

What are the artifacts in Event Storming?
There are 7 artifacts in event storming we use to model the behavior of a system: Command, Aggregate, External system, Domain event, Read model, Ui and Policy. 3 out of those 7 artifacts will potentially interact with either the human user or other systems. The 3 artifacts are commands, domain events and read models.

Ejemplos de agregados en un e-commerce podrían ser: "Pedido", "Cliente", "Producto", "Inventario" o "Carrito de Compras". Un agregado como "Pedido", por ejemplo, gestionaría todo el ciclo de vida de un pedido, desde su creación hasta la entrega, asegurando que todas las operaciones relacionadas con el pedido mantengan la consistencia y cumplan con las reglas de negocio definidas.

Notas Adhesivas Verdes: Actores

Las notas adhesivas de color verde se reservan para los Actores. Los actores son personas o sistemas externos que interactúan con el dominio. Identificar a los actores es fundamental para entender quién o qué inicia los comandos y quién se ve afectado por los eventos de dominio.

Ejemplos de actores comunes son: "Cliente", "Administrador del Sistema", "Sistema de Pago", "Sistema de Inventario", o "Proveedor de Logística". Visualizar los actores ayuda a comprender el contexto más amplio del sistema y las interacciones entre sus diferentes componentes y el mundo exterior.

Notas Adhesivas Moradas: Políticas y Sistemas Externos

Finalmente, las notas adhesivas de color morado se utilizan para señalar Políticas o Sistemas Externos que influyen o interactúan con el dominio. Las políticas representan reglas de negocio o decisiones automatizadas que se toman en respuesta a eventos. Los sistemas externos son entidades fuera del dominio que, sin embargo, tienen un impacto en él.

What is the color code for Event Storming?
By using color-coded sticky notes for different elements domain events (orange), commands (blue), aggregates (yellow), actors (green), and external systems (purple) — you can gain a clearer understanding of how different parts of the system interact. Sep 7, 2024

Ejemplos de políticas podrían ser: "Política de Cancelación de Pedidos", "Política de Gestión de Devoluciones" o "Política de Descuentos". Ejemplos de sistemas externos incluyen: "Pasarela de Pago", "Sistema de Detección de Fraude", "Servicio de Envío" o "CRM Externo". Identificar estos elementos ayuda a comprender las dependencias y las restricciones impuestas al dominio por factores externos.

Ejemplo Práctico: Event Storming para un E-commerce

Para ilustrar cómo se aplican los códigos de color en la práctica, veamos un ejemplo de Event Storming para una aplicación de comercio electrónico:

  1. Paso 1: Identificar Eventos de Dominio (Naranja)

    Comenzamos identificando los eventos clave que ocurren en el sistema. En nuestro ejemplo de e-commerce, algunos eventos de dominio (notas naranjas) podrían ser:

    • Pedido Realizado: Cuando un cliente completa el proceso de compra.
    • Pago Procesado: Una vez que se confirma el pago del cliente.
    • Inventario Reservado: Después de que el pago se procesa, el sistema reserva los artículos.
    • Pedido Enviado: Cuando el almacén procesa y envía el pedido.
    • Pedido Entregado: El evento final, cuando el cliente recibe el paquete.
  2. Paso 2: Añadir Comandos (Azul)

    A continuación, agregamos los comandos (notas azules) que desencadenan los eventos de dominio. Para los eventos anteriores, los comandos correspondientes podrían ser:

    • Realizar Pedido: El comando que inicia el proceso de compra del cliente.
    • Procesar Pago: El sistema procesa el pago utilizando una pasarela externa.
    • Reservar Inventario: El sistema recibe este comando para reservar las unidades correspondientes.
    • Enviar Pedido: Una vez que los artículos están listos, se ejecuta este comando para iniciar el envío.
  3. Paso 3: Identificar Agregados (Amarillo)

    Ahora, identificamos los agregados (notas amarillas) responsables de gestionar la lógica de negocio y el estado del sistema. En nuestro ejemplo:

    • Agregado Pedido: Gestiona el ciclo de vida completo de un pedido.
    • Agregado Cliente: Maneja la información del cliente, historial de pedidos y detalles de pago.
    • Agregado Inventario: Gestiona la disponibilidad y reserva de productos.
  4. Paso 4: Definir Actores (Verde)

    Identificamos los actores (notas verdes) que interactúan con el sistema:

    • Cliente: El usuario que navega por la tienda, realiza pedidos y efectúa pagos.
    • Sistema de Inventario: Responsable de actualizar los niveles de stock y reservar artículos.
    • Pasarela de Pago: Un sistema externo que procesa los pagos.
  5. Paso 5: Políticas y Sistemas Externos (Morado)

    Finalmente, añadimos políticas y sistemas externos (notas moradas):

    • Sistema de Detección de Fraude: Evalúa los pedidos para detectar posibles fraudes.
    • Proveedor de Logística: Un servicio externo que gestiona las entregas de pedidos.

Beneficios de Usar Códigos de Color en Event Storming

La utilización de códigos de color en Event Storming aporta numerosos beneficios que mejoran la eficacia de las sesiones y la comprensión del dominio:

  • Claridad Visual: Los colores facilitan la identificación rápida de los diferentes tipos de elementos (eventos, comandos, agregados, etc.) en el lienzo de Event Storming. Esto reduce la carga cognitiva y permite a los participantes enfocarse en la lógica del negocio.
  • Organización Estructurada: Los colores imponen una estructura visual al proceso, ayudando a organizar la información de manera lógica y coherente. Esto es especialmente útil en dominios complejos con gran cantidad de eventos e interacciones.
  • Comunicación Eficaz: Los colores actúan como un lenguaje visual común que facilita la comunicación entre los miembros del equipo, independientemente de su origen técnico o de negocio. Todos pueden entender rápidamente el significado de cada color.
  • Identificación de Microservicios: Como se ilustró en el ejemplo, los eventos de dominio (naranja) y los comandos (azul) ayudan a delimitar los límites entre servicios y a definir las responsabilidades de cada microservicio. Los agregados (amarillo) organizan la lógica de dominio dentro de cada servicio.
  • Detección de Patrones: La representación visual con colores puede revelar patrones y relaciones entre los diferentes elementos del dominio que podrían no ser evidentes de otra manera. Esto facilita la identificación de áreas problemáticas o de oportunidades de mejora en el diseño del sistema.

Preguntas Frecuentes sobre Códigos de Color en Event Storming

A continuación, respondemos algunas preguntas frecuentes sobre el uso de códigos de color en Event Storming:

¿Es obligatorio usar estos colores específicos en Event Storming?
No es estrictamente obligatorio, pero se recomienda utilizar los códigos de color estándar (naranja, azul, amarillo, verde, morado) ya que son ampliamente reconocidos y facilitan la comunicación y la comprensión entre equipos. La consistencia en el uso de colores a lo largo de diferentes sesiones y proyectos es beneficiosa.
¿Puedo añadir más colores para representar otros tipos de elementos?
Si bien el conjunto básico de colores suele ser suficiente, en algunos casos específicos podría ser útil añadir colores adicionales para representar elementos muy particulares del dominio. Sin embargo, es importante no sobrecargar el lienzo con demasiados colores, ya que esto podría dificultar la visualización y la comprensión. La clave está en mantener la simplicidad y la claridad.
¿Qué pasa si no tengo notas adhesivas de todos los colores?
En la práctica, es posible que no siempre se disponga de notas adhesivas de todos los colores deseados. En estos casos, se pueden utilizar colores similares o incluso etiquetas escritas a mano para indicar el tipo de elemento. Lo importante es mantener la consistencia dentro de la sesión y asegurarse de que todos los participantes comprendan el significado de cada representación.
¿Dónde puedo aprender más sobre Event Storming y su aplicación?
Existen numerosos recursos para aprender más sobre Event Storming, incluyendo libros, artículos, cursos online y talleres. Algunos autores y expertos destacados en DDD y Event Storming son Alberto Brandolini, Nick Tune y Mathias Verraes. Buscar recursos online y participar en comunidades de DDD puede ser muy útil para profundizar en esta técnica.

Conclusión

En resumen, los códigos de color en Event Storming son una herramienta esencial para facilitar la modelización de dominios complejos y la definición de microservicios. Al utilizar notas adhesivas de colores para representar eventos de dominio (naranja), comandos (azul), agregados (amarillo), actores (verde) y sistemas externos/políticas (morado), se logra una representación visual clara y organizada del sistema.

Este enfoque no solo simplifica el proceso de identificación de microservicios, sino que también asegura que cada servicio esté acoplado de forma flexible y alineado con la lógica del negocio. Con Event Storming y sus códigos de color, los equipos pueden diseñar sistemas más modulares, escalables y fáciles de mantener, mejorando la comunicación y la colaboración entre todos los involucrados en el desarrollo de software.

Subir