Nos últimos tempos, o debate sobre rate limiting tem ganhado destaque, especialmente após as inovações implementadas por grandes nomes como Uber e OpenAI. Esses gigantes da tecnologia estão reavaliando como controlam o acesso aos seus serviços, migrando de sistemas tradicionais baseados em contadores para abordagens mais adaptativas e baseadas em políticas. Essa transição não só melhora a experiência do usuário, mas também otimiza a eficiência operacional. Vamos explorar isso?

Introdução

Quem já trabalhou com sistemas escaláveis sabe que o rate limiting é uma parte crucial para garantir a estabilidade e a performance de aplicações. No entanto, o que muitos não percebem é que o modelo tradicional pode estar mais desgastado do que parece. Uber e OpenAI, por exemplo, têm adotado um novo modelo que promete revolucionar a forma como gerenciamos o tráfego. Nesse artigo, vou compartilhar insights sobre essas mudanças e como elas podem impactar o desenvolvimento de software como um todo.

Entendendo a Nova Abordagem

Tradicionalmente, empresas como a Uber utilizavam token buckets para implementar suas regras de rate limiting, geralmemte dependentes de bancos de dados como o Redis. Isso, no entanto, trouxe uma série de ineficiências operacionais, como latência adicional e a necessidade de implantações constantes para ajustes de limites. Além disso, a fragmentação das configurações complicava a manutenção, criando um verdadeiro campo minado de riscos.

Com a introdução do Global Rate Limiter (GRL), a Uber resolveu muitas dessas questões. O GRL utiliza uma arquitetura de feedback em três níveis: decisões locais são aplicadas no plano de dados da malha de serviços, agregadores de zona coletam métricas e controladores regionais calculam limites globais. O que antes era uma abordage de “parar tudo” agora se transformou em um sistema que reduz uma porcentagem configurável do tráfego, permitindo que as chamadas permaneçam operacionais.

Por outro lado, a OpenAI focou na experiência do usuário. A equipe percebeu que a interrupção causada por limites de taxa estava prejudicando a interação com os aplicativos Codex e Sora. Para resolver isso, desenvolveram um sistema que combina limites de uso com um balanço de créditos, permitindo que os usuários continuem utilizando os serviços até certo ponto, após o qual o sistema deduz automaticamente do saldo de créditos. Eles chamam isso de “cascata”, onde diferentes camadas de limites e créditos se entrelaçam, criando uma experiência mais fluida.

Dicas para Implementar Sistemas de Rate Limiting

Se você está pensando em implementar ou modernizar um sistema de rate limiting, aqui vão algumas dicas que podem te ajudar:

Conclusão

A transição para novos modelos de rate limiting, como os adotados pela Uber e OpenAI, é um sinal claro de que o futuro do controle de acesso está se moldando para ser mais flexível e centrado no usuário. Essas mudanças não só melhoram a performance dos sistemas, mas também oferecem uma experiência mais rica e contínua para os usuários. Para nós, arquitetos de software, isso representa uma chance de inovar e repensar como lidamos com o tráfego e a capacidade de nossos serviços. Vamos aproveitar essa onda e transformar nossos próprios sistemas!