Ir al contenido principal

Entradas

Event Driven Architecture & Big ball of mud

EDA Una arquitectura event-driven (EDA) es un estilo de diseño que se basa en la producción, detección y reacción a eventos. Un evento es un cambio de estado significativo en el sistema o en el entorno que puede ser notificado a otros componentes interesados. Una arquitectura event-driven permite una mayor desacoplamiento, escalabilidad y resiliencia entre los componentes del sistema, así como una mejor adaptabilidad a los cambios y a las necesidades del negocio. Sin embargo, una arquitectura event-driven también puede tener sus desafíos y riesgos, especialmente si no se aplica una buena gestión de los dominios y los boundaries. Un dominio es un conjunto de conceptos, reglas y procesos relacionados con un aspecto del negocio o del problema que se quiere resolver. Un boundary es una frontera lógica que separa y protege un dominio de otros dominios o de influencias externas. Un buen diseño de dominios y boundaries facilita la comprensión, el mantenimiento y la evolución del sistema, así
Entradas recientes

SNS vs EventBridge

La diferencia principal entre ambos servicios radica principalmente en el patrón de arquitectura que intentan cubrir: Message Broker o Event Bus. Message Broker Un message broker es un intermediario que se encarga de traducir y transportar los mensajes entre los servicios que los producen y los que los consumen. El message broker tiene una expectativa sobre cómo el consumidor maneja el mensaje y existe un contrato entre las dos partes. Un ejemplo de aplicación de un message broker es una cola de trabajo, donde los servicios envían tareas a realizar y otros servicios las reciben y las procesan. SNS es un ejemplo de message broker, ya que permite enviar mensajes a diferentes tipos de suscriptores y esperar una confirmación de entrega. Event Bus Un event bus es un canal que se encarga de distribuir los eventos entre los servicios que los generan y los que los escuchan. El event bus no tiene ninguna expectativa sobre cómo el oyente maneja el evento y no existe un contrato entre las dos par

¿Qué es el patrón Circuit Breaker y cómo se puede implementar con AWS Step Functions?

En el desarrollo de software, es común que las aplicaciones se comuniquen con servicios o recursos externos, como bases de datos, APIs o microservicios. Sin embargo, estos servicios o recursos pueden fallar o estar temporalmente indisponibles por diversas razones, lo que puede afectar el rendimiento y la disponibilidad de la aplicación. Para manejar estos escenarios de falla, se puede utilizar el patrón Circuit Breaker, que consiste en detectar y prevenir que una operación que tiene alta probabilidad de fallar se ejecute repetidamente, causando más problemas o consumiendo recursos innecesarios.  El patrón Circuit Breaker tiene tres estados posibles: cerrado, abierto y medio abierto. Cerrado : En este estado, el circuito está funcionando normalmente y la operación se ejecuta sin problemas. Si se detecta una falla, se incrementa un contador de fallas y se calcula un umbral de fallas, que puede ser un número o un porcentaje de fallas permitidas. Si el contador de fallas supera el umbra

¿Cómo usar Lambda con Amazon SQS para procesar mensajes de forma asíncrona y escalable?

Amazon Simple Queue Service (Amazon SQS) es un servicio de colas de mensajes que permite enviar y recibir mensajes entre componentes de una aplicación de forma fiable y duradera. Con Amazon SQS, se puede desacoplar la lógica de negocio de la fuente de los eventos, y procesarlos de forma asíncrona y en paralelo.   En este artículo, vamos a ver cómo usar Lambda con Amazon SQS para procesar mensajes de una cola de forma eficiente y flexible, aprovechando las características de concurrencia, escalamiento y procesamiento del event source mapping de Lambda, así como la estrategia de backoff que implementa Lambda para manejar errores y reintentos.   Concurrencia del event source mapping Un event source mapping es una configuración que le dice a Lambda qué fuente de eventos debe monitorear y qué función debe invocar cuando se produzca un evento. En el caso de Amazon SQS, el event source mapping se encarga de leer los mensajes de la cola y enviarlos a la función Lambda en lotes. La concurrencia