O problema não era apenas o banco
Uma conversa no ChatGPT pode exigir centenas de leituras antes de produzir uma resposta. Se uma delas entra na cauda da distribuição, é essa demora que o usuário percebe. Em 11 de setembro, a OpenAI abriu parte da arquitetura do Habitat, sua plataforma de armazenamento online. Segundo a empresa, o sistema atende mais de 70 milhões de requisições por segundo, mais de 500 petabytes e quase quarenta regiões.
Os números são internos, sem protocolo público de reprodução. Ainda assim, o relato é valioso porque mostra a sequência de decisões. O Habitat começou no DevDay de 2023 como uma biblioteca Python diante do Azure Cosmos DB. Ela escondia schema, roteamento, autorização, criptografia, serialização, controle de carga e conexões. Para o time de produto, parecia uma API simples.
Com dezenas de serviços, essa conveniência virou coordenação distribuída. Uma mudança de roteamento regional precisou de biblioteca nova, feature flag, shadowing e implantação em cada cliente. Dias depois, um serviço voltou a uma versão antiga e reintroduziu o defeito que a migração tentava evitar.
A resposta foi retirar a lógica dos clientes e transformá-la num serviço. O salto extra de rede custava latência e computação, mas comprava um ponto único para rollout, observabilidade e política. A arquitetura trocou o fanout operacional de dezenas de deploys pelo risco concentrado de um componente central.
Distribuir o cliente distribui a dívida
Quando roteamento, cache e autorização moram numa biblioteca, cada versão ativa vira parte do plano de controle. Um rollback local pode restaurar um comportamento globalmente inseguro.
Centralizar reduz coordenação, mas aumenta a obrigação de isolamento e disponibilidade.A API escalou porque recusou trabalho
O ponto mais transferível não é a escolha do banco. É o contrato estreito. O Habitat não aceita SQL arbitrário, joins ou travessias livres de grafo. Expõe objetos e arestas definidos pelos clientes, permite buscar relações diretas e tenta manter cada operação simples, previsível e com trabalho aproximadamente constante.
Objetos e suas arestas ficam juntos numa partição. O objeto apontado pode estar em outra conta do Cosmos DB e até em outra região. Isso favorece distribuição horizontal, mas torna travessias longas ineficientes. A limitação é deliberada: o sistema impede que uma consulta barata de escrever produza fanout caro e derrube o caminho online.
Esse desenho lembra o TAO, publicado pelo Facebook em 2013, também baseado numa API fixa de objetos e associações para um workload de leitura em grande escala. No Cosmos DB, a própria documentação mostra por que a forma da consulta importa: uma chave de partição mal alinhada cria partições quentes, e consultas sem filtro adequado atravessam várias partições com custo crescente.
O Habitat não elimina a necessidade de consultas complexas. Ele as retira do caminho crítico. Mudanças são copiadas por CDC para instâncias isoladas do Rockset, que cada equipe precisa dimensionar. Busca e análise ganham flexibilidade, mas passam a aceitar defasagem de CDC, outro custo e outra superfície operacional.
Capacidade negativa também é arquitetura
O Habitat torna consultas imprevisíveis impossíveis no caminho online. A complexidade continua existindo, mas atravessa uma saída explícita, isolada e mensurável.
Uma API segura em escala define tanto o que não faz quanto o que oferece.Python aguentou porque o sistema media a espera
Transformar a biblioteca em serviço expôs um segundo gargalo. O workload combinava I/O com compressão, criptografia, checksums, health checks, shadowing e hedging. asyncio sobrepõe espera de rede, mas não cria paralelismo de CPU. Uma resposta já devolvida pelo banco podia ficar parada até a coroutine receber tempo novamente.
A equipe passou a medir o atraso do event loop diretamente. Em alta utilização, reportou jitter de centenas de milissegundos e, em casos extremos, segundos. A solução imediata foi reduzir a concorrência por processo e multiplicar workers. Isso preservou a cauda de latência, mas ampliou consumo de CPU, memória e conexões.
Dois incidentes revelam como detalhes pequenos viram fenômenos sistêmicos. O Statsig atualizava configurações a cada minuto, sem jitter, e até oito processos no mesmo pod analisavam juntos um JSON enorme. Todos pausavam ao mesmo tempo. Em outro caso, o pool do aiohttp reutilizava conexões em LIFO. Servidores lentos devolviam conexões por último e eram escolhidos primeiro na rodada seguinte, recebendo ainda mais tráfego. Trocar para FIFO quebrou a realimentação.
Hoje, a OpenAI diz depender principalmente de Istio e Envoy para balanceamento consciente da carga. O Envoy também concentra conexões, converte HTTP/1 em HTTP/2, aplica multiplexação, rate limits e circuit breakers. A lição não é que um proxy resolve a escala. É que cauda, conexão e feedback precisam ser observados como um sistema, não como médias separadas.
CPU livre não prova event loop saudável
Monitore o atraso entre o instante em que uma tarefa deveria voltar e quando ela realmente voltou. Depois correlacione com p99, conexões por destino, distribuição entre workers e recuperação após picos.
A média esconde a fila que o usuário sente.Rust veio depois do contrato
O Python chegou a atender mais de 20 milhões de requisições por segundo. Quando o serviço e a API amadureceram, dois engenheiros, com Codex e GPT-5.5, reescreveram o Habitat em Rust no segundo trimestre de 2026. A nova versão já processaria 95% do tráfego e, nos dados da OpenAI, seria seis vezes mais eficiente em CPU e quinze vezes em memória, com menor latência média e de cauda.
Esses multiplicadores são indicativos, não comparáveis a um benchmark independente. A publicação não informa hardware, carga, tamanho dos objetos, configuração de compilação, custo absoluto ou distribuição completa das latências. Também promete para a segunda parte detalhes sobre cache, multitenancy e a parceria com o Cosmos DB. Ainda não é possível avaliar a arquitetura inteira.
Mesmo assim, a ordem importa. A equipe aceitou dívida técnica para estabilizar o limite entre produto e armazenamento. Instrumentou o comportamento real. Só então trocou o runtime. Reescrever antes teria acelerado um contrato ainda instável.
O teste para outro sistema
Copiar o Habitat não começa perguntando se Python ou Rust vence. Começa registrando as formas de consulta, o fanout máximo, a distribuição por partição, p50, p99 e p99,9, atraso do event loop, conexões por destino, amplificação causada por hedging e tempo de recuperação depois de sobrecarga.
Depois, duas topologias podem ser comparadas: biblioteca compartilhada e serviço central. A primeira remove um salto de rede e distribui capacidade. A segunda reduz versões ativas e cria um lugar para política, auditoria e rollout. O critério não é elegância. É qual delas mantém custo previsível e degradação contida no workload real.
O Habitat não escalou porque encontrou uma linguagem milagrosa. Escalou porque a OpenAI decidiu quais operações seriam permitidas, moveu consultas complexas para outro caminho e tratou coordenação como parte do armazenamento. Rust tornou esse sistema mais eficiente depois.
A decisão de engenharia veio antes da otimização: a API precisou aprender a dizer não.
