- 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
Manejo de excepciones en el patrón productor-consumidor
Clase 21 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
El manejo de excepciones en arquitecturas que usan el patrón productor-consumidor es un aspecto clave para asegurar la estabilidad y eficiencia, especialmente cuando los volúmenes de datos son muy altos. Integrar estos patrones con estrategias de control de errores permite que procesos críticos, como el procesamiento de facturas electrónicas, se mantengan operativos, incluso frente a sobrecarga o fallos inesperados.
¿Qué problemas se presentan al usar el patrón productor-consumidor en sistemas de alta demanda?
Al usar productores y consumidores, la diferencia de velocidad entre la producción de mensajes y su consumo puede crear cuellos de botella. Por ejemplo, si los productores generan más mensajes de los que los consumidores pueden manejar, pueden aparecer errores y mensajes sin procesar. Es frecuente en instituciones como el Banco Interamericano de Desarrollo, donde entidades públicas o aduanas reciben grandes cantidades de facturas electrónicas que superan su capacidad de atención.
¿Cómo usar dead queue channels para manejar mensajes no procesados?
Una solución es usar dead queue channels, que identifican y gestionan mensajes no procesados tras cierto tiempo en el buffer. Estos canales de excepción almacenan los mensajes durante más tiempo, facilitando su posterior análisis o reprocesamiento. Con este enfoque, puedes:
- Reenviar automáticamente los mensajes al buffer tras un periodo de espera para intentar su consumo nuevamente.
- Derivar los mensajes a un proceso de excepción que los registre como casos especiales para que los productores originales los reingresen.
- Combinar estrategias, como reprocesar mensajes y, si persisten fallos, registrarlos o notificarlos a los productores.
- Descartar mensajes irrecuperables notificando el fallo al productor original.
La elección entre estas opciones depende de las necesidades del negocio y los riesgos permitidos en el sistema.
¿Por qué planear el manejo de excepciones desde el diseño?
Incluir el diseño para el manejo de excepciones es tan esencial como entrenar a un nadador para enfrentar un calambre durante una competencia. Las arquitecturas de microservicios y los patrones tradicionales requieren que casos excepcionales sean considerados desde el inicio. Esto evita sorpresas y permite reaccionar ante situaciones excepcionales de forma ágil y controlada.
Comparte en comentarios tus experiencias: ¿Qué errores enfrentaste con el patrón productor-consumidor y de qué manera los has resuelto?