related:: HTTP & REST, Load Balancing (Balanceamento de Carga), Algoritmos Token Bucket e Leaky Bucket, Microservices
API Gateway
Um API Gateway é uma camada de abstração posicionada entre os clientes e os serviços internos de uma arquitetura, funcionando como um ponto de entrada único e centralizador para comunicações síncronas. Ele recebe todas as chamadas de API, encaminha-as para os serviços apropriados com base em regras predefinidas (como caminhos e métodos) e retorna a resposta ao cliente, fazendo com que diversos microserviços pareçam um sistema único para o usuário final.
O Problema que Resolve
Em arquiteturas de microserviços, a exposição direta de múltiplos serviços é complexa porque exige que o cliente conheça todos os endpoints, URLs e documentações específicas. O API Gateway simplifica isso ao encapsular a complexidade do backend, permitindo que os times internos alterem ou substituam serviços sem impactar as integrações dos clientes.
Principais Componentes e Funcionalidades
Os API Gateways centralizam funções comuns que, de outra forma, precisariam ser implementadas individualmente em cada microserviço:
- Roteamento de Requisições: Direciona o tráfego com base em prefixos de caminho (path-prefix) ou regras de cabeçalho.
- Autenticação e Autorização: Verifica a identidade do usuário e suas permissões de acesso de forma centralizada.
- Gestão de Tráfego (Rate Limiting e Throttling): Utiliza algoritmos como o Token Bucket (que permite picos curtos de tráfego) ou o Leaky Bucket (que mantém uma saída constante e rígida) para proteger o backend de sobrecargas.
- Gerenciamento de Cache: Armazena respostas frequentes para reduzir a latência e a carga nos serviços de origem.
- Versionamento de APIs: Facilita a coexistência de múltiplas versões de uma API e permite estratégias de lançamento gradual, como o canary deployment.
API Gateway vs. Load Balancer
Embora ambos intermediem requisições, o Load Balancer foca em distribuir o tráfego entre várias réplicas da mesma aplicação (atuando frequentemente nas Camadas 4 ou 7 do modelo OSI). Já o API Gateway foca em criar uma abstração para diversos endpoints e serviços diferentes, resolvendo problemas de governança e organização específicos de APIs REST. Na prática, é comum que ambos trabalhem juntos, com o Gateway utilizando Load Balancers como seus backends.
Exemplos de tecnologias que podem atuar ou sustentar API Gateways incluem o Envoy Proxy, Nginx, HAProxy e Traefik.