
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.
Son las 14:00. Se está haciendo el post-mortem del incidente de las 7:00. Seis ingenieros quieren recorrer la secuencia exacta de logs que vio el SRE de guardia en su momento. Transmites el snapshot a través de una URL de Hoody Pipe con ?n=8. Todo el mundo ve la cascada dispararse en su propio terminal en el mismo instante — sin capturas, sin hacer scroll desincronizados, sin grabación de Zoom.
Coge el archivo de logs del momento del incidente desde tu snapshot de hoody-files. Transmítelo a través de una ruta de Hoody Pipe con ?n=8. Ocho ingenieros hacen curl a la misma ruta. El pipe espera hasta que todos estén conectados, y entonces los bytes pasan una sola vez al ritmo que tú marques — cada lector ve la misma línea en el mismo instante.
# The 7am incident is captured in incident-2026-05-04.log
# (snapshotted from /var/log/app at 07:25 by the on-call SRE).
# Replay it through a pipe path with ?n=8 — the server waits
# until eight readers connect, then the bytes move through once.
# pv -L 50k rate-limits the replay to a readable 50KB/s.
cat incident-2026-05-04.log \
| pv -L 50k \
| curl -T - \
"https://prod-pipe.containers.hoody.com/api/v1/pipe/replay?n=8"
# [INFO] Waiting for 8 receiver(s) to connect...
# [INFO] Streaming to 8 receiver(s) at 50.0 KB/s# Each engineer in the post-mortem call runs the same line.
# They block until everyone has joined, then the cascade scrolls
# past their terminal at the exact rate the SRE saw at 07:23.
curl "https://prod-pipe.containers.hoody.com/api/v1/pipe/replay?n=8"
# 07:23:14 INFO POST /v1/checkout u_28f
# 07:23:15 WARN stripe latency 2.4s
# 07:23:16 ERR 500 stripe timeout
# 07:23:17 ··· auto-rollback armed
# ...the whole cascade, in order, on every terminal at once.Dos piezas de la API documentada de Pipe: PUT /api/v1/pipe/[path] en el emisor, GET /api/v1/pipe/[path] en cada lector, ambos referenciados por el mismo n. El servidor reenvía el Content-Type del emisor, mantiene la conexión hasta un TTL de 5 minutos mientras espera lectores, y aplica backpressure si algún lector va lento. La velocidad de replay la define el emisor por completo — pv, dd, o cualquier limitador de tasa de tu confianza.
Un stream que va pasando cambia la conversación. La gente deja de discutir qué pasó y empieza a ver qué pasó. Tres propiedades del pipe hacen esto posible.
n=N está documentado en la API de Pipe: cada lector que se une a la misma ruta con el mismo n recibe una copia idéntica fan-out. Ocho ingenieros ven la misma línea pasar en el mismo instante — nadie va por delante, nadie está achicando los ojos en la pantalla compartida de otro.
Los logs reales de prod corren más rápido de lo que un humano puede absorber. pv -L 50k limita el replay a un ritmo legible; el pipe lleva la velocidad que elija el emisor. Puedes pausar el post-mortem haciendo ctrl-Z al emisor y reanudarlo con fg — el terminal de cada lector se pausa contigo.
El pipe almacena cero bytes. Cuando el cat termina o el SRE hace ctrl-C al emisor, la ruta se cierra — sin endpoint residual expuesto a internet, sin transcripción que gestionar en retención. Vuelve a ejecutarlo desde el snapshot para quien se haya unido tarde a la llamada.
Cuatro tiempos desde el log del momento del incidente hasta una reproducción compartida del post-mortem. Nada de aquí es infraestructura a medida — el snapshot vive en hoody-files, el replay viaja por una sola URL de Pipe.
El SRE de guardia copia /var/log/app a las 07:25 a un bucket de hoody-files. El archivo es la fuente de verdad para todo lo que pasó en la ventana de la cascada.
El lead escribe una URL de Hoody Pipe con ?n=8 (seis ingenieros + dos huecos para rezagados) y la pega en el canal del post-mortem. Los receptores pueden conectar primero — el pipe mantiene la plaza hasta 5 minutos.
El SRE vuelca el snapshot a través de pv -L 50k a la URL. El servidor espera a que ocho curls estén conectados, luego los bytes pasan una sola vez al unísono — la cascada se dispara en seis terminales en el mismo instante.
El director llega tarde. Vuelve a ejecutar la misma línea. El pipe es una ruta, no un lugar — no hay nada que rebobinar, nada que buscar, nada almacenado en el servidor. Simplemente vuelve a darle al play.
Según la spec documentada de la API de Pipe. Límites y comportamientos que convierten una sola URL en un teatro de post-mortem.
Tope documentado de n. Tu reunión de post-mortem no se quedará sin asientos — el pipe escala a una organización entera.
El pipe transmite directo de extremo a extremo. El replay no deja rastro en el servidor cuando el emisor se desconecta.
Los receptores pueden conectar antes que el emisor; el pipe mantiene la plaza hasta 5 minutos para los que llegan tarde.
Fuente: Hoody Pipe API — límites documentados para /api/v1/pipe/[path], parámetro n (1–256), y TTL de pipe sin establecer.
El post-mortem no es un documento. Es un stream que todo el mundo ve junto.
El conjunto de herramientas y rituales que invocas hoy para guiar a un equipo por el timeline de un incidente. Cada uno almacena algo, cobra por asiento, o pierde el timing. El pipe es una sola URL con un playhead compartido.
La cascada se dispara en seis terminales a la vez. La conversación cambia. La gente deja de discutir qué pasó y empieza a ver qué pasó.