A medida que el ritmo de desarrollo de OpenAI se aceleró, el monorepo de la empresa enfrentó desafíos significativos de escalabilidad. La integración de Codex y otras herramientas de IA permitió a los ingenieros realizar más trabajo en paralelo, lo que provocó un aumento en las cargas, fusiones y extracciones concurrentes desde trabajos de investigación y entornos de CI. Estas demandas eventualmente causaron que los sistemas de control de versiones existentes tuvieran dificultades, con una fiabilidad que ocasionalmente caía por debajo del 90% debido a extracciones lentas y fusiones fallidas. Para abordar esto, los ingenieros de OpenAI construyeron Pando, un nuevo backend para repositorios Git diseñado para manejar el trabajo a 'escala de agentes', donde tanto los ingenieros humanos como los agentes de IA interactúan con la base de código simultáneamente.

Pando está diseñado para ser transparente para el usuario; impulsa el monorepo sin requerir que los ingenieros cambien sus flujos de trabajo o herramientas de Git existentes. El sistema logra la escalabilidad horizontal al repensar dos limitaciones centrales de los servicios de Git tradicionales. Primero, coordina las actualizaciones de las ramas de forma independiente. En muchos sistemas estándar, se impone un único orden a todas las escrituras en un repositorio, lo que significa que una carga a una rama podría esperar a una carga en una rama no relacionada. Pando elimina este cuello de botella permitiendo que las ramas no relacionadas se actualicen en paralelo. Segundo, Pando optimiza el rendimiento de lectura al reutilizar 'packfiles' —el formato comprimido de Git para múltiples objetos— a través de diferentes clientes. En lugar de generar un packfile único para cada extracción, el servidor sirve los mismos bytes a múltiples clientes, reduciendo significativamente el uso de CPU y la E/S de disco.

Diagrama que muestra cómo se almacenan los objetos Git en archivos pack utilizando instrucciones para copiar blobs anteriores.
Un diagrama que ilustra cómo Pando optimiza el almacenamiento representando los nuevos objetos como instrucciones para copiar datos existentes de un archivo pack.openai.com

El artículo explica cómo Pando optimiza el rendimiento de lectura al reutilizar archivos pack, que son el formato comprimido de Git para múltiples objetos.

Diagrama que muestra las ramas trunk y topic divergiendo y avanzando con archivos pack sucesivos.
Un diagrama técnico que muestra cómo Pando maneja la divergencia de ramas y las dependencias de los archivos pack para mantener la escalabilidad.openai.com

El artículo describe cómo Pando coordina las actualizaciones de las ramas de forma independiente para eliminar los cuellos de botella en los servicios de Git tradicionales.

Para lograr esta escala, Pando adopta un modelo de 'consistencia causal', que implica un compromiso específico con respecto al estado general del repositorio. Debido a que Pando coordina las ramas de forma independiente, no proporciona una instantánea única y consistente en un momento dado de todas las referencias en todo el repositorio. Por ejemplo, si un cliente realiza un clon completo mientras se actualizan dos ramas diferentes, el cliente podría ver una rama en la versión A y la otra en la versión B, incluso si técnicamente se actualizaron 'simultáneamente'. Sin embargo, Pando mantiene la serializabilidad para referencias individuales, asegurando que las actualizaciones de una sola rama permanezcan consistentes. En producción, esta arquitectura ha reducido la latencia mediana de carga en casi 5 veces y actualmente maneja casi un petabyte de datos de Git por día. Si bien el sistema proporciona un alto rendimiento, el número específico de agentes de IA concurrentes que utilizan actualmente el sistema no ha sido revelado.