# data[].attributes.body
Hay dos topologías principales dentro de la arquitectura basada en eventos: la topología mediator y topología broker. La topología mediator se usa comúnmente cuando se requiere control sobre el flujo de trabajo de un proceso de evento, mientras que la topología broker se usa cuando se requiere un alto grado de capacidad de respuesta y control dinámico sobre el procesamiento de un evento.

# data[].attributes.body
Agregar nuevas funciones a través de procesadores de eventos nuevos o existentes es relativamente sencillo, particularmente en la topología broker. Al proporcionar enlaces a través de mensajes publicados en la topología broker, los datos ya están disponibles, por lo que no se requieren cambios en la infraestructura ni en los procesadores de eventos existentes para agregar esa nueva funcionalidad.

# data[].attributes.body
Las arquitecturas basadas en eventos son de tipo push, por lo que todo ocurre bajo demanda cuando el evento se presenta en el enrutador. De este modo, no tiene que pagar por el sondeo continuo para comprobar si hay un evento. Esto significa menos consumo de ancho de banda de la red, menos consumo de CPU.

# data[].attributes.body
La idea es que, en lugar de invocar un procedimiento en forma directa (como se haría en un estilo orientado a objetos) un componente puede anunciar mediante difusión uno o más eventos. Un componente de un sistema puede anunciar su interés en un evento determinado asociando un procedimiento con la manifestación de dicho evento.

# data[].attributes.headline
Replicación de datos entre cuentas y regiones

# data[].attributes.subject
Replicación de datos entre cuentas y regiones

# data[].attributes.body
Puede utilizar una arquitectura basada en eventos para coordinar sistemas entre equipos que operan y se implementan en diferentes regiones y cuentas. Al utilizar un enrutador de eventos para transferir datos entre sistemas, puede desarrollar, escalar e implementar servicios independientemente de otros equipos.

# data[].attributes.body
Ya no es necesario escribir código personalizado para sondear, filtrar y enrutar eventos; el enrutador de eventos filtrará y enviará automáticamente los eventos a los consumidores. El enrutador también elimina la necesidad de una fuerte coordinación entre los servicios productores y consumidores, acelerando su proceso de desarrollo.

# data[].attributes.body
Esta arquitectura logra mantener un rendimiento alto mediante comunicaciones asíncronas combinadas con un procesamiento altamente paralelo.

# data[].attributes.body
Es un patrón relativamente complejo de implementar, principalmente debido a su naturaleza distribuida asincrónica.

# data[].attributes.body
Si bien las pruebas unitarias individuales no son demasiado difíciles, requieren algún tipo de cliente de prueba especializado o herramienta de prueba para generar eventos. Las pruebas también se complican por la naturaleza asincrónica de este patrón.

# data[].attributes.body
Es un estilo de arquitectura asincrónica distribuida popular que se utiliza para producir aplicaciones altamente escalables y de alto rendimiento. La arquitectura basada en eventos se compone de componentes de procesamiento de eventos desacoplados que reciben y procesan eventos de forma asincrónica. Un sistema basado en eventos permite que los mensajes se ingieran en el ecosistema controlado por eventos y, a continuación, se transmitan a los servicios que estén interesados en recibirlos.

# data[].attributes.body
Procesamiento en tiempo real con un retraso mínimo.

# data[].attributes.body
Amazon Kinesis facilita la recopilación, el procesamiento y el análisis de datos de streaming en tiempo real para obtener datos de manera oportuna y reaccionar rápidamente ante información nueva.

# data[].attributes.headline
Supervisión del estado de los recursos y alertas

# data[].attributes.subject
Supervisión del estado de los recursos y alertas

# data[].attributes.body
En lugar de comprobar continuamente los recursos, puede utilizar una arquitectura basada en eventos para supervisar y recibir alertas sobre cualquier anomalía, cambio o actualización. Estos recursos pueden incluir buckets de almacenamiento, tablas de bases de datos, funciones sin servidor, nodos de computación, etc.

# data[].attributes.headline
Procesamiento en paralelo y distribución ramificada

# data[].attributes.subject
Procesamiento en paralelo y distribución ramificada

# data[].attributes.body
Si tiene muchos sistemas que necesitan operar en respuesta a un evento, puede utilizar una arquitectura basada en eventos que permita distribuir el evento sin tener que escribir código personalizado para enviarlo a cada consumidor. El enrutador enviará el evento a los sistemas, cada uno de los cuales puede procesar el evento en paralelo con un propósito diferente.

# data[].attributes.body
Software architecture patterns. (s. f.). O’Reilly Online Learning. https://learning.oreilly.com/library/view/software-architecture-patterns/9781491971437/

IBM Developer. (s. f.). https://developer.ibm.com/articles/advantages-of-an-event-driven-architecture/

Martinekuan. (s. f.). Event-driven Architecture Style - Azure Architecture Center. Microsoft Learn. https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/event-driven

Arquitectura basada en eventos. (s. f.). Amazon Web Services, Inc. https://aws.amazon.com/es/event-driven-architecture/

Perez, M. A. (2021). ¿Qué es una arquitectura event-driven? BBVA Next Technologies. https://www.bbvanexttechnologies.com/blogs/que-es-una-arquitectura-event-driven/

Reynoso, C., & Kicillof, N. (2004). Estilos y Patrones en la Estrategia de Arquitectura de Microsoft.

¿Qué es Apache Kafka? | IBM. (s. f.). https://www.ibm.com/mx-es/topics/apache-kafka

# data[].attributes.body
Los eventos son cada vez más usados en IoT, debido a que proveen un alto valor en los productos al mantener informados a los suscriptores sobre lo que está pasando en todo momento.

# data[].attributes.body
Imagina que compras boletos de avión, e inmediatamente recibes una notificación con tus boletos y un evento en Google calendar; o una notificación al recibir tu nómina; o un correo de ofertas el fin de semana en tus tiendas favoritas. Estos casos pueden ser notificaciones por cualquier medio como email, push/web notificaciones, SMS o comandos incluso streamings de videos.

# data[].attributes.body
Los juegos multijugador en línea utilizan la arquitectura basada en eventos para sincronizar las acciones de los jugadores, gestionar eventos del juego (como la aparición de enemigos) y permitir la comunicación en tiempo real entre los jugadores.

# data[].attributes.attachment_link.title
Arquitectura orientada a eventos (Event Driven Architecture)

# data[].attributes.body
Un cliente hace una transferencia electrónica. Una vez realizada, se lanza un evento de notificación push o un email de confirmación y la transferencia no espera a que la notificación se entregue sino que continúa normalmente sin demorar la petición de transacción.

# data[].attributes.body
Esto mediante el equilibrio de carga programático de los procesadores de eventos (también llamado consumidores competidores). A medida que aumenta la carga de solicitudes, se pueden agregar procesadores de eventos adicionales mediante programación para manejar las solicitudes adicionales.

# data[].attributes.body
Es una plataforma de transmisión de mensajes distribuida de código abierto que permite el desarrollo de aplicaciones impulsadas por eventos en tiempo real.