Patrones de mensajería

La naturaleza distribuida de las aplicaciones en la nube requiere una infraestructura de mensajería que permite conectar los componentes y servicios, idealmente mediante un acoplamiento flexible, para maximizar la escalabilidad. La mensajería asincrónica se usa ampliamente y ofrece numerosas ventajas, pero también supone desafíos como la ordenación de los mensajes, la administración de mensajes dudosos, la idempotencia, etc.

Patrón Resumen
Solicitud y respuesta asincrónicas Desacople el procesamiento de back-end de un host de front-end en el que el procesamiento de back-end tiene que ser asincrónico, pero en el que, aún así, el front-end necesita una respuesta clara.
Comprobación de notificaciones Divida un mensaje grande en una comprobación de notificaciones y una carga para evitar sobrecargar un bus de mensajes.
Organización Haga que cada componente del sistema participe en el proceso de toma de decisiones sobre el flujo de trabajo de una transacción empresarial, en lugar de depender de un punto central de control.
Competing Consumers Permite que varios consumidores simultáneos procesen los mensajes recibidos en el mismo canal de mensajería.
Pipes and Filters Desglosa una tarea que realiza un procesamiento complejo en una serie de elementos independientes que se pueden volver a utilizar.
Priority Queue Clasifica por orden de prioridad las solicitudes enviadas a los servicios para que aquellas con una prioridad más alta se reciban y procesen más rápidamente que las que tienen una prioridad más baja.
Publisher-Subscriber Permita que una aplicación anuncie eventos de forma asincrónica a varios consumidores interesados, sin necesidad de emparejar los remitentes con los receptores.
Queue-Based Load Leveling Usa una cola que actúa como búfer entre una tarea y un servicio que invoca para equilibrar cargas pesadas intermitentes.
Saga Administrar la coherencia de los datos entre los microservicios en escenarios de transacciones distribuidas. Una saga es una secuencia de transacciones que actualiza cada servicio y publica un mensaje o evento para desencadenar el siguiente paso de la transacción.
Scheduler Agent Supervisor Coordina un conjunto de acciones en un conjunto distribuido de servicios y otros recursos remotos.
Convoy secuencial Procesa un conjunto de mensajes relacionados en un orden definido, sin bloquear el procesamiento de otros grupos de mensajes.