← Sistemas bajo presión ETAPA 06 · 42 MIN

Arquitectura y contrapresión

Encuentra los cuellos de botella, protege las dependencias y evita que un pico se convierta en un colapso.

Abrir en el laboratorio ↗

AL TERMINAR, PODRÁS

  • Identificar componentes por responsabilidad y por frontera de fallas
  • Relacionar la tasa de llegada, la tasa de servicio y el crecimiento de la cola
  • Elegir una política de sobrecarga con consecuencias explícitas
Una cola acotada absorbe ráfagas. Cuando se llena, devuelve la presión hacia la fuente en vez de crecer.

Descripción del diagrama: Productores → Cola (30 trabajos/s); Cola → Workers; Cola → 429 · reintenta después (llena); 429 · reintenta después → Productores (baja el ritmo)

Dibuja responsabilidades antes que cajas de despliegue

Relay tiene una frontera de entrada, almacenamiento duradero de trabajos, lógica de planificación, workers y reporte de estado.

Estas responsabilidades pueden empezar en una sola aplicación desplegable. Dividirlas en servicios introduce fallas de red, despliegues independientes, depuración distribuida y costo operativo. Separa un componente cuando lo justifique el escalado independiente, la responsabilidad de un equipo, el aislamiento o una restricción concreta.

Un monolito modular puede conservar fronteras útiles sin exigir que cada llamada cruce la red. Tu diagrama de arquitectura debería mostrar la propiedad de los datos y los caminos de falla, no solo cajas con nombres de tecnologías de moda.

Una cola absorbe picos, no una sobrecarga infinita

Si durante un periodo sostenido los trabajos llegan más rápido de lo que los workers los terminan, la acumulación (backlog) crece sin límite a menos que cambie la admisión.

Cuatro workers que terminan dos trabajos por segundo cada uno dan aproximadamente ocho trabajos por segundo, antes de otros cuellos de botella. Una tasa de llegada de diez agrega entonces unos dos trabajos en espera por segundo. En un sistema estable, la ley de Little relaciona el trabajo promedio en el sistema con la tasa de procesamiento (throughput) y el tiempo promedio dentro del sistema: L = λW.

Enuncia la frontera de medición y las suposiciones antes de usar esa relación para planificar capacidad.

Empuja la presión hacia el origen

La contrapresión (backpressure) hace visible la sobrecarga aguas arriba en lugar de esconderla en buffers que no paran de crecer.

Algunas opciones son rechazar trabajo nuevo con una indicación de cuándo reintentar, limitar a los inquilinos, frenar a los productores o descartar trabajos de baja prioridad. Cada política cambia la experiencia del usuario y debe coincidir con las promesas del producto. Los timeouts necesitan presupuestos a lo largo de toda la cadena de llamadas: una petición aguas abajo no debería seguir consumiendo recursos mucho después de que quien la hizo se rindió.

Los reintentos deben ser limitados, espaciados y con jitter (variación aleatoria) para evitar picos de tráfico sincronizados. Escalar los workers puede empeorar la sobrecarga si el cuello de botella real es la base de datos.

ERROR FRECUENTE

Agregar una cola puede retrasar la falla visible mientras aumenta la latencia y el tiempo de recuperación. La capacidad y la admisión siguen necesitando límites explícitos.

INTÉNTALO TÚ

Llegan 120 trabajos por minuto y los workers terminan 90 por minuto. Calcula cuánto crece la acumulación en diez minutos y propón dos políticas de sobrecarga con consecuencias distintas para los usuarios.

COMPROBACIÓN DE RECUERDO / APLICA LA IDEA

Decide en el laboratorio.

El checkpoint de dos preguntas, tus notas y tu progreso guardado están en el laboratorio. Gratis y sin cuenta.

Abrir en el laboratorio ↗

CONÉCTALO CON RELAY

Dibuja las fronteras de datos y de fallas de Relay, elige una acumulación máxima y define el comportamiento de admisión cuando se alcance ese límite.