O desempenho de APIs RESTful é fator crítico para o sucesso de plataformas de e-commerce, onde alta demanda e confiabilidade são requisitos essenciais. Este trabalho apresenta uma análise comparativa de desempenho entre três frameworks web para desenvolvimento de APIs: Express.js (JavaScript), Gin (Go) e Actix (Rust). Experimentos de simulação foram realizados com base em duas plataformas de e-commerce com características distintas (https://www.amazon.com e https://shopee.com.br), mais especificamente diferenciadas pelo volume de dados retornados. Quatro tipos de testes de performance foram realizados: carga, estresse, pico e ruptura. Os experimentos foram conduzidos em ambiente isolado com Docker, garantindo reprodutibilidade. Os resultados evidenciam que o Gin apresentou escalabilidade quase linear, mantendo confiabilidade próxima à perfeição, mesmo sob cargas extremas (7.000+ usuários virtuais simultâneos), com utilização de CPU consistentemente abaixo de 35%. O Actix revelou ter capacidade sólida até 2.400 usuários virtuais, mas com sensibilidade pronunciada a payloads volumosos. O Express.js apresentou limitações críticas, com taxas de falha superiores a 15% em testes de pico e subutilização crônica de CPU, evidenciando inadequação para cenários de alta demanda sem reengenharia arquitetural. Os resultados traz contribuições para auxiliar na escolha tecnológica diante da necessidade de escalar operações, manter qualidade de experiência do usuário e na avaliação da viabilidade comercial de plataformas digitais
Este projeto apresenta uma análise comparativa sistemática de desempenho entre três frameworks web modernos:
- Actix (Rust) - Framework de alta performance baseado no padrão Actor Model
- Express.js (Node.js) - Framework minimalista e amplamente adotado
- Gin (Go) - Framework otimizado para velocidade e eficiência
As APIs simulam duas plataformas reais de e-commerce com características distintas (Amazon e Shopee), diferenciadas principalmente pelo volume de dados retornados nas requisições.
Análise comparativa de desempenho entre web frameworks (Actix Web, Express.js e Gin).
Mais especificamente:
- Simular três APIs, baseadas em duas plataformas de e-commerce (Amazon e Shopee);
- Analisar o desempenho dessas APIs em quatro testes.
Todas as APIs seguem arquitetura RESTful padronizada, garantindo comparação justa:
- Endpoints equivalentes: Mesma estrutura de rotas e funcionalidades
- Banco de dados compartilhado: PostgreSQL único para todas as implementações
- Estrutura de dados idêntica: Formato JSON padronizado nas respostas
- Containerização: Docker para ambiente isolado e reprodutível
| Método | Grupo | Caminho | Descrição |
|---|---|---|---|
| GET | Categorias | /categorias |
Retorna categorias de produtos |
| POST | Clientes | /clientes/login |
Autentica cliente |
| POST | Clientes | /clientes |
Cria novo cliente |
| GET | Home | /home/amazon |
Página inicial Amazon |
| GET | Home | /home/shopee |
Página inicial Shopee |
| POST | Pedidos | /pedidos |
Cria novo pedido |
| GET | Produtos | /produtos/ |
Lista todos os produtos |
| GET | Produtos | /produtos/:sku |
Retorna produto específico |
| GET | Produtos | /produtos/categoria/:categoria |
Produtos por categoria |
| GET | Produtos | /produtos/ofertas |
Produtos em oferta |
| GET | Produtos | /produtos/destaques |
Produtos em destaque |
| GET | Produtos | /produtos/nome |
Busca produto por nome |
Os testes foram desenvolvidos utilizando k6 e estão organizados em quatro categorias:
Avalia comportamento sob condições normais de operação.
- Duração: 22 minutos
- Patamares: 500 VUs (10 min) → 750 VUs (10 min)
Examina limites operacionais sob condições progressivamente intensas.
- Duração: 24 minutos
- Patamares: 800 → 1.000 → 1.200 → 1.400 VUs (5 min cada)
Simula surtos súbitos de tráfego extremo (flash sales, promoções).
- Duração: 12 minutos 30 segundos
- Patamares: 100 VUs → 2.500 VUs (em 10 segundos, mantidos por 10 min)
Identifica ponto máximo de capacidade antes do colapso.
- Duração: 25 minutos
- Patamares: 500 → 7.000 VUs (progressão linear +375 VUs/min)
Resumo Comparativo
| Framework | Throughput Médio | Latência p95 | Taxa de Falhas | Uso de CPU |
|---|---|---|---|---|
| Gin | 252-387 req/s | 868-1.311 ms | 0-0,34% | 10-35% |
| Actix | 185-239 req/s | 492-2.794 ms | 0,01-0,03% | 20-68% |
| Express.js | 96-131 req/s | 7.897-15.091 ms | 3,56-7,26% | 18-30% |
Ambiente de Execução
Especificações dos Contêineres:
- Sistema Operacional: Alpine Linux
- vCPUs: 4.0
- Memória RAM: 4GB
Máquina Hospedeira:
- Processador: AMD Ryzen 7 5700X3D (8 núcleos, 16 threads)
- RAM: 32GB
- SO: Windows 11
- Virtualização: Docker
Métricas Avaliadas
- Throughput: Requisições processadas por segundo
- Latência: Tempo de resposta (mediana, p90, p95)
- Uso de CPU: Porcentagem de utilização do processador
- Uso de Memória: Consumo de RAM durante os testes
- Taxa de Falhas: Porcentagem de requisições que falharam
| Tecnologia | Versão | Principais Dependências |
|---|---|---|
| Rust | 1.83.0 | actix-web 4.10.2, tokio 1.44.2, diesel 2.2.10 |
| Node.js | 18.19.0 | express 4.21.2, prisma 6.4.1, bcryptjs 3.0.2 |
| Go | 1.24.1 | gin-gonic/gin 1.10.0, gorm 1.25.12 |
Ferramentas
- Banco de Dados: PostgreSQL 15.03
- Testes de Performance: k6
- Containerização: Docker
- Dataset: Amazon Brazil Products 2023 (1.3M produtos)
Limitações Identificadas
- Ambiente de teste local (não em nuvem)
- Dataset simulado (não dados reais de produção)
Sugestões para Extensão
- Comparação com FastAPI (Python), Spring Boot (Java), ASP.NET Core (C#)
- Análise de diferentes SGBDs (MySQL, MongoDB)
- Testes de longa duração (soak tests 24-72h)
- Testes em ambientes de nuvem (AWS, GCP, Azure)
- Gabriel Scarano de Oliveira
- Lucas Furriel Rodrigues
Orientadora: Prof.ª Dra. Adriana Barbosa Santo
Instituição: UNESP - Instituto de Biociências, Letras e Ciências Exatas Curso: Bacharelado em Ciência da Computação Ano: 2025