Description
Un cliente te escribe furioso porque le cobraste la tarjeta dos veces, y cuando vas a buscar el bug no hay ninguno: tu código estaba bien, la cola entregó el mismo mensaje dos veces y tu handler lo procesó las dos. Ese es el trato oculto de una cola. Parece la forma fácil de hacer async algo lento, y en silencio te cambia todas las garantías que tenías. En el momento en que el trabajo pasa por un broker, un mensaje puede entregarse dos veces, llegar fuera de orden, quedarse una hora en una cola, o desaparecer en un dead-letter que nadie mira, y un consumer que se cae a la mitad de un mensaje puede perder el trabajo o hacerlo de nuevo. La mayoría de los bugs de colas no son el broker, son las suposiciones: código que asume entrega exactly-once cuando el broker promete at-least-once, un handler que no es idempotente así que una reentrega cobra dos veces, sin dead-letter queue así que un mensaje veneno bloquea la línea para siempre, y sin backpressure así que un producer rápido ahoga a un consumer lento. Usar bien una cola es saber exactamente qué garantiza y qué no, y construir el handler que sobrevive la reentrega, el desorden y la caída.
Este libro te enseña a construir sistemas asíncronos y orientados a eventos sobre colas y brokers en los que de verdad podés confiar, en vez de unos que pierden trabajo, lo procesan dos veces, o se caen bajo carga. Arranca desde por qué recurrís a una cola (desacoplar, amortiguar un pico, y hacer trabajo lento fuera del camino del request) y el costo que tomás: cambiaste una llamada síncrona simple por un sistema con nuevos modos de falla. Construye primero el modelo central, el producer, el broker, el consumer, y el hecho que explica la mayoría de los bugs: los brokers reales entregan al menos una vez, no exactamente una, así que tu handler tiene que ser idempotente o vas a cobrar dos veces en la reentrega inevitable. Cubre las garantías en términos claros (el orden y por qué es solo por partición o por cola, los acknowledgements y cuándo un mensaje de verdad terminó, la durabilidad y qué sobrevive a una caída del broker) y los patrones que mantienen honesto a un sistema: consumers idempotentes, dead-letter queues para mensajes veneno, reintentos con backoff, y el patrón outbox para publicar un evento y commitear un cambio de base de datos de forma atómica. Pone las herramientas principales con honestidad (Kafka para un log durable y ordenado y streaming de eventos, RabbitMQ para ruteo flexible, SQS para una cola gestionada, Celery para colas de tareas en Python) para que elijas por el trabajo. La segunda mitad es operarlo: backpressure cuando los producers superan a los consumers, monitorear la profundidad de la cola y el lag del consumer antes de que sea una caída, y el procesamiento exactly-once como un efecto que vos diseñás, no un casillero que tildás. Los ejemplos son un pipeline real, mostrado perdiendo y duplicando trabajo y después hecho confiable. Para ingenieros backend que quieren sistemas async que entreguen cada mensaje exactamente una vez en efecto, aunque el broker no lo haga.
Escrito para vos si
Este libro es para: ingenieros backend que conectan servicios con colas y brokers (Kafka, RabbitMQ, SQS, Celery) y quieren una entrega en la que puedan confiar, en vez de un sistema que pierde mensajes en silencio, cobra dos veces en un reintento, o procesa eventos fuera de orden.
El secreto de este libro
Los 6 pasos para volverte el ingeniero al que le confían la plata que pasa por el sistema. El método para construir sistemas async sobre colas que entregan cada mensaje exactamente una vez en efecto, aunque el broker solo prometa al menos una. Dejá de perder trabajo, de cobrar dos veces en un reintento y de procesar eventos fuera de orden. Pasá de un pipeline que descarta y duplica mensajes en silencio a uno en el que por fin podés confiar bajo carga.
- Conocé el costo antes de meter una cola
- Conocé los roles donde vive cada bug
- Conocé las garantías que el broker de verdad da
- Sobreviví la reentrega, el veneno y la avalancha
- Cerrá la brecha entre el commit y el evento
- Elegí el broker y vigilalo bajo carga
Qué incluye este libro
- Capítulo 1: El cobro doble que nadie programó
- Capítulo 2: Cuándo una cola vale la pena, y cuándo solo suma riesgo
- Capítulo 3: Los tres roles detrás de cada mensaje
- Capítulo 4: Por qué el mismo mensaje llega dos veces, a propósito
- Capítulo 5: El orden en que mandás no es el orden en que recibís
- Capítulo 6: Cobrar la tarjeta una sola vez aunque el mensaje llegue dos
- Capítulo 7: El mensaje malo que puede congelar toda la cola
- Capítulo 8: Cuando un reintento empeora todo
- Capítulo 9: Guardado en la base, perdido antes del broker
- Capítulo 10: Kafka, RabbitMQ o SQS: cuál te está pidiendo tu problema
- Capítulo 11: La métrica que te avisa 20 minutos antes de la caída
- Capítulo 12: Por qué la entrega exactamente una vez es casi un mito
- Capítulo 13: El sistema async en el que por fin podés confiar


