Pular para o conteúdo

Design clássico · Pleno

Projetar um API gateway

Projeto de entrevista clássico. Pontos centrais: algoritmos de rate limiting e autenticação e autorização.

14 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: algoritmos de rate limiting e autenticação e autorização. Em uma arquitetura de microsserviços, um cliente pode interagir com mais de um serviço de front-end. Sem um intermediário, o cliente precisa acompanhar vários endpoints e tratar falhas com resiliência, e precisa entender a decomposição dos serviços, o que complica a manutenção e a refatoração.

01 · CONTEXTO

Uma porta de entrada para muitos serviços

Em uma arquitetura de microsserviços, um cliente pode interagir com mais de um serviço de front-end. Sem um intermediário, o cliente precisa acompanhar vários endpoints e tratar falhas com resiliência, e precisa entender a decomposição dos serviços, o que complica a manutenção e a refatoração. Endpoints públicos também aumentam a superfície de ataque e exigem endurecimento.

Um API gateway é um ponto de entrada centralizado para as interações entre clientes e serviços da aplicação: atua como proxy reverso e roteia as requisições dos clientes para os serviços apropriados. Sem ele, cada serviço público precisa tratar por conta própria preocupações como autenticação, SSL e limitação de taxa por cliente.

02 · ROTEAMENTO E AGREGAÇÃO

Um endpoint, vários serviços

O gateway usa roteamento na camada de aplicação e oferece um único endpoint aos clientes. Algumas requisições são apenas encaminhadas ao serviço apropriado; outras o gateway atende distribuindo a chamada entre vários serviços.

Um exemplo da documentação do padrão é a página de detalhes de um produto: os dados do produto ficam espalhados por vários serviços, como o de informações do produto, o de preço e o de avaliações. Uma rede móvel costuma ser bem mais lenta e ter latência bem maior que uma rede não móvel, e chamadas separadas por uma rede celular de alta latência são ineficientes e podem causar perda de conexão ou respostas incompletas.

  1. O aplicativo móvel envia uma única requisição ao gateway, em vez de uma para cada serviço.

    Diagrama da arquitetura: Gateway agregando chamadas de um aplicativo móvel
    CLAplicativo móveluma chamada
    NWAPI gateway
    CPServiço de informações do produto
    CPServiço de preço
    CPServiço de avaliações
  2. O gateway despacha a requisição aos serviços necessários para a operação.

    Diagrama da arquitetura: Gateway agregando chamadas de um aplicativo móvel
    CLAplicativo móvel
    NWAPI gatewaydistribui
    CPServiço de informações do produto
    CPServiço de preço
    CPServiço de avaliações
  3. Os resultados voltam ao gateway, que os agrega antes de devolvê-los ao cliente.

    Diagrama da arquitetura: Gateway agregando chamadas de um aplicativo móvel
    CLAplicativo móvel
    NWAPI gatewayresposta única
    CPServiço de informações do produto
    CPServiço de preço
    CPServiço de avaliações
  4. Se uma das chamadas demora demais, pode ser aceitável expirar o tempo e devolver um conjunto parcial de dados.

    Diagrama da arquitetura: Gateway agregando chamadas de um aplicativo móvel
    CLAplicativo móvel
    NWAPI gateway
    CPServiço de informações do produto
    CPServiço de preço
    CPServiço de avaliaçõesdemora

Uma variação do padrão dá a cada tipo de cliente o seu próprio gateway, o chamado back-end para front-end. Quanto à agregação, a documentação da Azure sugere considerar um serviço de agregação atrás do gateway, em vez de embuti-la nele.

03 · TAREFAS DE BORDA

Identidade e outras preocupações transversais

Além de rotear, o gateway pode assumir preocupações transversais em nome dos serviços de back-end: gerenciamento de certificados voltados ao cliente, autenticação, término de TLS, monitoramento, tradução de protocolo e limitação de taxa.

Na autenticação e na autorização, o gateway pode verificar se o cliente está autorizado a fazer a requisição; ele também pode autenticar o usuário e repassar aos serviços um token de acesso com informações sobre ele.

  1. O cliente conhece apenas o gateway, que roteia a requisição ao serviço apropriado.

    Diagrama da arquitetura: Tarefas de borda no gateway
    CLClientesó vê o gateway
    NWAPI gateway
    CPProvedor de identidade
    CPServiço de catálogo
    CPServiço de pedidos
    NWLogs e métricas
  2. A verificação de identidade e de autorização fica na borda, apoiada no provedor de identidade deste desenho.

    Diagrama da arquitetura: Tarefas de borda no gateway
    CLCliente
    NWAPI gateway
    CPProvedor de identidadeidentidades
    CPServiço de catálogo
    CPServiço de pedidos
    NWLogs e métricas
  3. A limitação de taxa é uma das preocupações que o gateway assume em nome dos serviços.

    Diagrama da arquitetura: Tarefas de borda no gateway
    CLCliente
    NWAPI gatewaylimita a taxa
    CPProvedor de identidade
    CPServiço de catálogo
    CPServiço de pedidos
    NWLogs e métricas
  4. O gateway pode repassar aos serviços um token de acesso com informações sobre o usuário.

    Diagrama da arquitetura: Tarefas de borda no gateway
    CLCliente
    NWAPI gatewaytoken de acesso
    CPProvedor de identidade
    CPServiço de catálogo
    CPServiço de pedidos
    NWLogs e métricas
  5. O gateway também dá alguma consistência ao registro e ao monitoramento das requisições.

    Diagrama da arquitetura: Tarefas de borda no gateway
    CLCliente
    NWAPI gateway
    CPProvedor de identidade
    CPServiço de catálogo
    CPServiço de pedidos
    NWLogs e métricaslogs e métricas

04 · LIMITAÇÃO DE TAXA

Token bucket e leaky bucket

O Amazon API Gateway limita as requisições com o algoritmo token bucket, em que um token corresponde a uma requisição. A taxa configurada é o ritmo, em requisições por segundo, com que tokens entram no balde, e o burst é a capacidade do balde.

Quando as requisições superam a taxa de regime e o burst, o gateway começa a limitá-las, e o cliente pode receber a resposta de erro 429 Too Many Requests. No token bucket, um burst pode permitir que o limite pré-definido seja ultrapassado.

MétodoComo o limite é descritoO que acontece no excesso
Token bucket (Amazon API Gateway)Ritmo de entrada de tokens e capacidade do baldeAcima da taxa e do burst, o gateway começa a limitar as requisições
Leaky bucket (módulo do NGINX)Taxa de processamento por chave definida, com um tamanho máximo de burstOs excedentes são atrasados até superar o burst; então a requisição termina com erro

A escolha da chave também importa. No Amazon API Gateway, o limite por cliente usa como identificador a chave de API associada ao plano de uso. No NGINX podem existir vários limit_req ao mesmo tempo, por exemplo um por endereço IP e outro por servidor virtual, e o parâmetro nodelay evita atrasar os excedentes.

05 · LIMITES DO GATEWAY

A porta de entrada também falha

O gateway pode introduzir um ponto único de falha e também um gargalo. A orientação é evitar o ponto único de falha com várias instâncias do gateway e dimensioná-lo para os picos de tráfego, não só para a carga média.

  1. Neste desenho há mais de uma instância do gateway, o que evita o ponto único de falha.

    Diagrama da arquitetura: Gateway com várias instâncias
    CLCliente
    NWBalanceador de carga
    NWInstância A do gateway
    NWInstância B do gatewayinstância extra
    CPServiços de aplicação
  2. Um balanceador na frente reparte as requisições entre as instâncias.

    Diagrama da arquitetura: Gateway com várias instâncias
    CLCliente
    NWBalanceador de carga
    NWInstância A do gateway
    NWInstância B do gateway
    CPServiços de aplicação
  3. Cada instância precisa ser dimensionada para os picos de tráfego, não só para a média.

    Diagrama da arquitetura: Gateway com várias instâncias
    CLCliente
    NWBalanceador de carga
    NWInstância A do gatewaypico
    NWInstância B do gatewaypico
    CPServiços de aplicação
  4. O gateway adiciona um salto de rede a cada requisição antes de ela chegar aos serviços.

    Diagrama da arquitetura: Gateway com várias instâncias
    CLCliente
    NWBalanceador de carga
    NWInstância A do gateway
    NWInstância B do gateway
    CPServiços de aplicação

Esse salto extra aumenta o tempo de resposta, embora para a maioria das aplicações o custo de uma ida e volta a mais seja insignificante. Comprometer o gateway pode expor todos os serviços a jusante, e a lógica de negócio nunca deve ser descarregada nele.

Na prática, nginx e HAProxy são proxies reversos de código aberto, e a documentação da Azure recomenda preferir as soluções de gateway e ingress que a própria plataforma oferece, quando atendem aos requisitos de segurança e controle.

Perguntas frequentes

O que é Projetar um API gateway?

Projeto de entrevista clássico. Pontos centrais: algoritmos de rate limiting e autenticação e autorização.

O que o design de Projetar um API gateway cobre?

Ele está organizado nestas seções: Uma porta de entrada para muitos serviços, Um endpoint, vários serviços, Identidade e outras preocupações transversais, Token bucket e leaky bucket e A porta de entrada também falha.

Quanto tempo leva Projetar um API gateway e qual é o nível?

Leva cerca de 14 minutos para ler e tem nível Pleno.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.