← Voltar ao Blog
Arquitetura de Sistemas

Go x Java e gRPC x REST: Um Estudo Empírico Completo

Por Luiz Soares
2024-12-1212 min de leitura
📰

Panorama aprofundado da pesquisa que compara Go e Java com gRPC e REST para otimizar desempenho de APIs, incluindo motivação, método e achados-chave.

APIs (Application Programming Interfaces) sustentam a integração entre sistemas, viabilizando modularidade, escalabilidade e reuso. Em fábricas de software, o protocolo HTTPS e o estilo REST são o padrão de fato para expor serviços web, mas o avanço de Go e gRPC traz novas possibilidades de eficiência e latência.

Este estudo empírico nasceu de uma pergunta simples: qual combinação de linguagem e arquitetura de comunicação entrega mais desempenho na prática? Construímos quatro implementações da mesma aplicação (Go+gRPC, Go+REST, Java+gRPC, Java+REST) para isolar o impacto de cada escolha.

A aplicação foi mantida simples: um único endpoint recebe um conjunto de números e devolve três posições aleatórias. Dois tamanhos de payload: StdSize (~0,76 KB) representando requisições típicas da web, e LargeSize (~781 KB) para estressar transferências pesadas.

O ambiente foi controlado para reduzir ruído: Ubuntu Server minimal em um i7 de 9ª geração com 16 GB de RAM; Java 17 com Tomcat 10.1.8 (REST) e gRPC Netty 1.56.1; Go 1.16 usando net/http. Cada cenário rodou 5 repetições de 77 requisições, com checagem de normalidade e testes não paramétricos.

Principais achados: gRPC domina em payloads usuais, REST ganha em payloads grandes, e o estilo arquitetural de comunicação pesa muito mais que a linguagem—cerca de 94% da variação de desempenho é explicada pelo protocolo.

#Go#Java#gRPC#REST#APIs#Pesquisa
LS

Sobre Luiz Soares

TechLead Full-Stack especializado em produtos de IA, sistemas RAG e integrações com LLMs. Apaixonado por construir soluções escaláveis e compartilhar conhecimento com a comunidade de tecnologia.

Fale comigo →