Devnático
ArquiteturaDemonstração

tRPC em arquiteturas com Front, BFF e API

Onde o tRPC se encaixa bem — e onde ele complica — em arquiteturas com frontend, um BFF dedicado e uma API de domínio separada.

Devnático2 min de leitura
Ilustração abstrata representando camadas de uma arquitetura

Conteúdo de demonstração. Este artigo existe para testar o layout de análise técnica do Devnático e será substituído por conteúdo definitivo.

O tRPC resolve um problema específico muito bem: comunicação totalmente tipada entre um frontend TypeScript e um backend TypeScript, sem gerar nem manter contratos manualmente. O ponto de atenção é onde essa comunicação acontece na arquitetura.

O cenário comum: Front, BFF e API

Frontend (Next.js) → BFF (tRPC) → API de domínio (NestJS/REST ou gRPC)

Nesse desenho, o BFF existe para agregar chamadas, adaptar formatos e evitar que o frontend converse diretamente com múltiplos serviços de domínio.

Onde a coisa complica

Usar tRPC também entre o BFF e a API de domínio só faz sentido se ambos os serviços forem TypeScript e evoluírem em conjunto. Caso a API de domínio seja poliglota (ou tenha múltiplos tipos de consumidores), um contrato mais explícito — REST com OpenAPI, por exemplo — tende a envelhecer melhor.

Resumo da recomendação

ComunicaçãotRPC é uma boa escolha?
Frontend → BFF (mesmo monorepo TS)Sim, geralmente
BFF → API de domínio (TS, evolução conjunta)Depende do contexto
API de domínio → consumidores externos/poliglotasNormalmente não

Arquitetura não é sobre usar a ferramenta mais moderna em todo lugar — é sobre escolher o contrato certo para cada fronteira.

Vídeos novos sobre programação, arquitetura e IA — direto no YouTube.

Inscreva-se no canal para acompanhar os próximos conteúdos do Devnático.

Inscreva-se no YouTube