Queues, streams y procesamiento asíncrono
En esta lección aprendemos cómo un sistema maneja trabajo pesado sin dejar esperando al usuario. La idea: en lugar de hacer todo en el momento, pones la tarea en una queue y la procesas en segundo plano. Vamos a conocer las queues (colas: una fila de espera de tareas, igual que una fila en el correo
El System Design (planear cómo construir software grande que atienda a muchas personas) es como planear una ciudad: calles, almacenamiento, semáforos y equipos de mantenimiento, para que la ciudad siga funcionando bien incluso en la hora pico más intensa.
- Procesamiento asíncrono
- Manejar el trabajo en segundo plano en lugar de hacer esperar al usuario (asíncrono: 'no al mismo tiempo', es decir que no hace falta terminar todo antes de responder). La habilidad central de esta lección cubre las queues (una fila de espera de tareas), los streams (un flujo continuo de mensajes), los retries (intentar de nuevo ante una falla), la idempotency (para que un mensaje procesado dos veces no haga daño), y el backpressure (una desaceleración controlada cuando llega demasiado trabajo).
- Trade-off
- Una elección consciente que tiene tanto una ganancia como un costo, igual que elegir una ruta: el camino rápido cuesta un peaje, el gratuito toma más tiempo. En una entrevista le explicas al entrevistador la ganancia y el costo de cada elección.
- Métrica operativa
- Un número que muestra si la decisión realmente funciona una vez que el sistema está en vivo y atendiendo usuarios reales (producción). Por ejemplo: latency (cuánto tarda una respuesta), error rate (la proporción de solicitudes que fallan), queue lag (cuántas tareas están esperando en fila), y cache hit ratio (con qué frecuencia encontramos una respuesta ya lista). Como los medidores del tablero de un auto: te dicen si todo está bien.