Cuando tienes un servicio, la observabilidad —saber qué pasó cuando algo falla— es una tarea. Cuando tienes doce, son doce tareas, cada una hecha un poco distinto, y el día que se cae algo a las 2am descubres que el servicio que importa es justo el que nadie instrumentó.
Esta semana lo cerramos de un tirón. Sacamos nuestra capa de observabilidad a un solo SDK —logs estructurados, rastreo de errores y rendimiento (APM) en un mismo paquete— y apuntamos doce servicios a él. Beacon, Cortex, Pulse, Flux, Vault, Signal, Sentinel, Reflex, Recall, Dendrite, Vision, Synapse: el sustrato sobre el que corre el resto. Todos, la misma tarde, el mismo commit: 'fuente: el SDK de plataforma, versión 0.1.4’.
Observabilidad que cada equipo decide por su cuenta es observabilidad que la mitad de los equipos no tiene. La volvimos una dependencia, no una buena intención.
El cambio en cada repo es de una sola línea: de dónde viene la librería. Pero la línea no es el punto. El punto es que ahora hay un solo lugar donde mirar cuando algo se rompe, y una sola cosa que mejorar para que los doce mejoren a la vez. Subes una versión del SDK y doce servicios ganan el arreglo sin que nadie toque su código.
Lo contamos porque 'tenemos observabilidad’ es fácil de decir y difícil de sostener cuando cada servicio la implementa a mano: lo que no es de nadie no lo mantiene nadie. El recibo es aburrido a propósito —doce Gemfiles, la misma línea, la misma versión—. Lo aburrido es lo que escala.