
Sesenta contenedores en un servidor
Un servidor bare-metal ejecuta decenas a cientos de contenedores Hoody. KSM y dedup BTRFS hacen que el costo marginal sea casi cero.
El servicio A pipea su salida a una ruta. El servicio B la lee de la misma ruta. El pipe encamina los bytes entre los dos contenedores en tiempo real. Sin Redis, sin consumer group, sin demonio broker que cuidar.
POST in. GET out. El salto del medio es una URL.
Dos verbos HTTP y una ruta. Cualquier lado puede conectarse primero; el pipe espera hasta cinco minutos al contraparte y luego transmite los bytes. Sin cola, sin offset, sin grupo.
¿Productor offline? El consumidor hace GET y espera. ¿Consumidor offline? El productor hace PUT y espera. El pipe mantiene la conexión hasta cinco minutos hasta que llegue el contraparte.
Cuando el consumidor es lento, el kernel ralentiza el stream del productor. Sin profundidad de cola que monitorizar, sin high-watermark que ajustar. El socket es el buffer.
El trade-off honesto: nada se persiste. Para colas duraderas, no es esto. Para fan-out rápido entre contenedores, el broker acaba de desaparecer.
# Container A — producer streams jobs to the pipe
service-a | curl -T - https://api.hoody.com/api/v1/pipe/jobs
# Container B — consumer reads from the same path
curl https://api.hoody.com/api/v1/pipe/jobs | service-b
# Either side can connect first.
# The pipe holds the connection up to 5 minutes
# until the counterpart arrives, then streams through.PUT (o POST) envía. GET recibe. Los bytes no aterrizan en disco en ninguna parte — cruzan el cable del productor al consumidor con el pipe reenviando en vuelo.
Cuando un logger o un colector de métricas necesita los mismos eventos, sube ?n y añade un curl. Sin config de broker, sin consumer group, sin secret de auth que rotar. El nuevo lector simplemente existe.
Un lector lento aplica backpressure al productor; no bloquea a los demás. Hasta 256 lectores por ruta.
El broker existía porque dos contenedores no podían hablar directamente. Con el pipe, sí pueden. Todo lo que el broker añadía — auth, clientes, ops — desaparece.
Nada que desplegar, monitorizar o actualizar. El pipe es la plataforma; la URL es la única API.
Un token Hoody, con scope por proyecto. Sin usuario, contraseña o ACL por broker.
Cualquier cosa que hable HTTP puede producir o consumir — bash, Python, Go, un móvil, un navegador. Sin librería cliente.
Los mensajes viven en vuelo, no en reposo. Sin disco que llenar, sin política de retención, sin pregunta GDPR sobre datos en cola.
TCP ralentiza al productor cuando el consumidor más lento se queda atrás. Sin dashboards de lag porque no hay lag — solo tasa de stream.
Productor y consumidor nunca se ven las IPs. Comparten una URL. Mueve cualquiera a otro host sin reconfigurar nada.
El broker es la URL. La URL es el broker.
La capa intermedia colapsa. Lo que solía ser un demonio con estado, con credenciales, clientes y un runbook, ahora es una ruta. El diagrama de arquitectura tiene una caja menos.
una URL, un curl, un verbo HTTP
La infraestructura a la que recurren los equipos cuando un contenedor necesita pasar bytes a otro. Cada una añade un demonio, una config y una rotación de guardia. El pipe no cobra nada de eso.
¿Levantar Redis para hablar entre dos contenedores? O comparte una URL.