Sachin Malhotra, ingeniero en Anthropic, relata cómo la empresa tuvo que revisar por completo su servicio de test impact analysis bajo la presión de la codificación agéntica. El punto de partida es una cadena de cifras: los ingenieros despliegan en promedio ocho veces más código por trimestre que entre 2021 y 2025, Claude escribe el 80% de él y desempeña un papel importante en la revisión y aprobación de PR, el número de tests se multiplicó por diez con una plantilla casi constante. El producto de todo esto es un aumento de veinticinco veces en los jobs de CI en seis meses. Escribir código ya no es la restricción; una vez que la revisión se acelera, es la CI la que absorbe la presión.

El servicio descansa sobre dos componentes deterministas que deben permanecer sincronizados: un listener, que registra los resultados de cada ejecución, y un selector, que lee este historial para decidir qué tests se ejecutan en cada PR. Mantener un historial por test requería un único escritor, de ahí un único proceso, de ahí la imposibilidad de hacer sharding horizontal. El modo de fallo es el listener quedándose atrás: veinte minutos bastan para dejar decenas de miles de actualizaciones sin aplicar, lo que desencadena investigaciones innecesarias, deja que tests flaky bloqueen los merges, e impide que un test corregido o añadido se ejecute.

20 minutos de retraso del listener pueden traducirse en decenas de miles de actualizaciones de tests no aplicadas

— Sachin Malhotra , claude.com

Tres soluciones se sucedieron, cada una con una vida útil que se derrumba: duplicar los núcleos aguanta setenta días; el sharding por paquete — el listener no necesitaba un único escritor global sino uno por paquete, y Claude escribió el código para ello — aguanta veintinueve días; los reinicios diarios aguantan menos de un día. Mientras tanto, una sesión de larga duración en una versión interna de Claude Tag monitoriza el servicio y alerta más allá de cincuenta mil jobs de retraso acumulado; argumenta a favor de la revisión completa durante meses, pero el equipo prefiere el parche.

La revisión completa dota al servicio de un magasin de données en mémoire. Cada worker listener procesa cualquier resultado, lo añade a un log y sigue adelante sin retener nada: stateless, por tanto escalable horizontalmente. Un consumidor separado agrega el log en un historial por test cada pocos segundos. Más caro de ejecutar, pero escalable y perfilable. Tres semanas para un ingeniero, frente a aproximadamente un trimestre un año antes.

Las lecciones se resumen en cuatro reglas: anticipar lo exponencial y asumir una carga veinticinco veces mayor dentro de dos trimestres, dimensionar la v0 entre diez y veinte veces la escala percibida, instrumentar los servicios para que sirvan de ojos y oídos de Claude, y mantener el estado fuera del proceso desde el principio.