- 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
Patrón comparing consumers para procesamiento en tiempo real
Clase 22 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 procesamiento en tiempo real de cargas de trabajo es crucial para proyectos como los del Banco Interamericano de Desarrollo. La capacidad de responder rápidamente define la calidad en la integración de servicios digitales, especialmente cuando se trata de manejar documentos electrónicos como facturas de exportación.
¿Qué es el patrón comparing consumers y cómo optimiza el procesamiento en tiempo real?
El patrón comparing consumers es una variación del tradicional esquema de productores y consumidores. Aquí, se orienta el diseño hacia sistemas escalables, donde los consumidores compiten por procesar mensajes de forma rápida y eficiente.
- Se busca reducir la diferencia de velocidad entre la producción y el consumo de mensajes.
- Muchos consumidores intentan procesar un mismo mensaje, maximizando la probabilidad de respuesta en tiempo casi real.
- Es fundamental que las operaciones sean idempotentes, garantizando resultados coherentes sin importar cuántos consumidores procesen el mensaje o cuántas veces se repita la operación.
¿Por qué la idempotencia es importante en la integración de servicios?
En el contexto de operaciones sobre facturas, por ejemplo, varios servicios o instancias pueden consumir la misma factura. Para evitar inconsistencias:
- La idempotencia asegura un único resultado global, sin importar cuántas veces se procese el mismo dato.
- Facilita la integración segura entre sistemas tributarios y servicios de intercambio documental.
¿Qué consideraciones económicas y técnicas hay al implementar el patrón?
El uso de buffers o routers para manejar la competencia entre consumidores tiene implicaciones de costo y diseño.
- Los costos pueden incrementarse según la cantidad de consumidores y la capacidad de entregar mensajes solo una vez.
- Es necesario equilibrar la eficiencia en tiempo real con la gestión responsable del presupuesto tecnológico.
¿En qué situaciones el patrón comparing consumers aporta ventajas?
Este patrón resulta muy útil cuando hay que orquestar procesos de integración paralela y sincronizada, como en la gestión de facturas electrónicas para exportaciones e importaciones.
¿Tienes alguna experiencia aplicando patrones de consumidores en sistemas de integración? Comparte tus dudas o comentarios para seguir aprendiendo en comunidad.