- 1

Transición de programador empírico a arquitecto de software
02:46 - 2

Análisis de licitaciones con inteligencia artificial
08:48 - 3

Monorepositorios como herramienta de gestión de código fuente
13:00 - 4

Reglas de control de versiones en monorepositorio con trunk-based
05:58 - 5

Behavior Driven Development para alinear equipos técnicos y de negocio
09:25 - 6

Notación estándar C4 para diagramas de arquitectura
08:00 - 7

Generadores de sitios estáticos para documentación de proyectos
04:58 - 8

Uso de herramientas de IA para mejorar arquitectura de software
05:05 quiz de Creando Entornos de Software Saludables
Diferencias entre mensajes y eventos en arquitectura de servicios
Clase 19 de 29 • Curso de Arquitectura de Software Aplicada
Contenido del curso
- 9

Estructura del archivo Architecture.md para proyectos de software
12:00 - 10

Domain-driven design para sistemas de comercio exterior
06:50 - 11

Técnicas pre-mortem y cinco why para prevenir fallos en sistemas
03:58 - 12

Técnicas de conversación e intervención directa en arquitectura
02:49 quiz de Siguiendo una Arquitectura Limpia
- 19

Diferencias entre mensajes y eventos en arquitectura de servicios
03:36 - 20

Patrón productor consumidor vs fan-in y fan-out en microservicios
03:11 - 21

Manejo de excepciones en el patrón productor-consumidor
02:48 - 22

Patrón comparing consumers para procesamiento en tiempo real
02:28 - 23

Patrón Process Manager para integrar actividades humanas y sistemas
02:33 quiz de Patrones de integración
- 24

Patrones de persistencia: durable state vs event sourcing
08:15 - 25

Máquinas de estado finito en la capa de presentación de software
04:52 - 26

Técnicas SAST, DAST y pen testing para seguridad en software
01:36 - 27

Funciones fitness para evaluar arquitecturas de software
04:20 - 28

Observabilidad en sistemas con OpenTelemetry e ingeniería del caos
04:45
Comprender la diferencia entre mensajes y eventos es esencial en la ingeniería de software, especialmente al diseñar arquitecturas orientadas a servicios. Muchos errores de diseño surgen por confundir estos dos conceptos. Aquí encontrarás puntos clave y recomendaciones para usarlos de manera efectiva en tus sistemas distribuidos.
¿Qué caracteriza a los mensajes y su función en arquitecturas de servicios?
Los mensajes forman parte de la transacción global del negocio o caso de uso que se está ejecutando. Esta característica los hace vitales cuando necesitas controlar el flujo de una operación que puede completarse o cancelarse, por ejemplo, dependiendo del pago realizado por un usuario.
- Un mensaje suele ser punto a punto: requiere un origen y un destino definidos.
- Permite retrasar o cancelar completamente una operación si una condición no se cumple.
- Son útiles cuando la transacción es global y aún está en curso al enviarse el mensaje.
Por ejemplo, al crear una orden, el usuario inicia una acción que pasa por una cola y es consumida por otro servicio. Si el pago no es efectivo, toda la operación puede cancelarse.
¿Cómo funcionan los eventos y cuándo utilizarlos en microservicios?
En contraste, los eventos son notificaciones relacionadas con acciones ya concluidas. Un evento indica que una microtransacción se completó, sin posibilidad de revertirse.
- Un evento es un hecho pasado y no admite marcha atrás.
- Puede haber múltiples servicios escuchando y reaccionando a un mismo evento.
- Es útil para arquitecturas donde varias partes deben conocer la finalización de una acción específica.
Por ejemplo, después de publicar contenido, se lanza un evento informando a otros servicios. Si se requiere modificar lo sucedido, se emiten nuevos eventos que generan nuevos estados pero no revierten lo anterior.
¿Cuándo conviene diseñar transacciones con eventos o mensajes?
La decisión entre usar mensajes o eventos depende de las necesidades transaccionales de tu arquitectura:
- Los mensajes se emplean para controlar transacciones grandes que pueden completarse o cancelarse globalmente.
- Los eventos se emplean para notificar microtransacciones ya concluidas, permitiendo a otros servicios tomar acciones sobre hechos consumados.
- Puedes combinar ambos, pero debes definir claramente los contratos y el manejo de excepciones para que todo el equipo los entienda.
Un diseño eficaz clarifica si la transacción será manejada por eventos pequeños o mensajes que controlan operaciones más grandes, anticipando cómo los servicios deben reaccionar ante cada circunstancia.
¿Tienes experiencia usando mensajes y eventos? Comparte tu opinión y enriquece esta conversación.