/ arquitectura de software

Event-Driven Architecture: Conceptos

Anteriormente en NopalDev vimos algunos conceptos básicos sobre las arquitecturas dirigidas por eventos. Hoy veremos otros conceptos e ideas principales detrás de las EDA (por sus siglas en inglés)

eda

Event processing Frameworks

En nuestro ejemplo anterior hablábamos sobre una fletera internacional y la cantidad tan másiva de eventos que solo los GPS pueden enviar. Ahora, ¿que pasaría si existieran más dispositivos con más alertas? La idea de los event processing frameworks (frameworks de procesamiento de eventos) es poder trabajar con toda esta información, procesarla y hacer algo con ella.

Estas herramientas soportan varios modelos:

Modelo de Streaming y Modelo Publicador-Suscriptor

Streaming: Son publicados en un log principal y ordenados conforme suceden. Los consumidores (que pueden ser un API o un dispositivo) pueden leer cualquier parte del log, pero son responsables de mantener el seguimiento de los mensajes que ya procesaron. El event stream o también llamado secuencia de eventos es un flujo constante de eventos, ordenados por tiempo.

Modelo publicador-suscriptor: ¡Así es!, como el patrón de diseño. Aquí un broker o agente mantiene el seguimiento de las suscripciones y cuando un evento es publicado lo envía a cada uno de los suscriptores. Los eventos aquí no son guardados, ni pueden reenviarse y los nuevos suscriptores no pueden ver eventos antiguos.

Bueno, y ahora ¿cómo proceso los eventos?

Para ello existen dos "tipos" de procesado. El simple y el complejo (como este post con tanta teoría)

Simple: Cuando llega un evento, desencadena una accion en el consumidor. Esta acción tiene una lógica simple y se basa enteramente en el contenido del evento.

Complejo: Este procesamiento en el consumidor puede o no procesar una serie de eventos y realizar análisis de patrones más sofisticados para detectar correlación o causalidad. Por ejemplo, fraude o análisis de sentimientos en un texto.

Ya tenemos identificada cada parte de la arquitectura... ahora, ¿cómo creamos una solución?

Eduardo Montalvo

Eduardo Montalvo

Programador con intereses en machine learning, clean code, arquitecturas de software y formación de equipos técnicos.

Read More