
Bruno Santana
Atualizado em 18 de ago. de 2025
CONTEÚDO
Fastify vs Express: Teste de Fogo na Prática
Recentemente, encarei um desafio comum em inícios de projetos: qual framework http no ecossitema Node.js escolher. Dentre os frameworks mais no estilo minimal que era o que desejávamos vieram as duas maiores já em mente: Express e Fastify? E como gosto de decisões baseadas em dados (e não só hype), fui testar na prática e entende se o fastify de fato entrega tudo isso que vejo a comunidade fala (pelo menos a parte que chega até mim).
Preparei um benchmark simples entre os dois frameworks, usando rotas reais de leitura e escrita com carga crescente — e os resultados foram bem interessantes!
🧪 O que foi testado?
Montei um monorepo com pnpm
, contendo dois apps:
express-api
fastify-api
Cada um implementa as rotas:
GET /api/[framework]
: resposta simples ({ pong: true }
)POST /api/[framework]/user
: recebe payload JSON comname
eemail
O benchmark foi feito com o Autocannon, simulando cargas com:
🔁 10, 50 e 100 conexões simultâneas
⏱️ 10, 15 e 20 segundos de duração
✅ Medindo throughput (req/s), latência (média e p99), erros e timeouts
📊 Resultados
🚀 GET – Leitura Simples
Framework | Conexões | Req/s (média) | Latência Média | p99 |
---|---|---|---|---|
Fastify | 10 | 75.7k | 0.016 ms | 1 ms |
Express | 10 | 44.9k | 0.02 ms | 1 ms |
Fastify | 50 | 78.6k | 0.04 ms | 1 ms |
Express | 50 | 48.5k | 0.316 ms | 2 ms |
Fastify | 100 | 78.2k | 1.03 ms | 2 ms |
Express | 100 | 48.0k | 1.53 ms | 4 ms |
✍️ POST – Escrita com Payload
Framework | Conexões | Req/s (média) | Latência Média | p99 |
---|---|---|---|---|
Fastify | 10 | 34.7k | 0.046 ms | 1 ms |
Express | 10 | 38.6k | 0.016 ms | 0 ms |
Fastify | 50 | 26.5k | 1.66 ms | 10 ms |
Express | 50 | 25.7k | 1.76 ms | 5 ms |
Fastify | 100 | 20.1k | 4.60 ms | 14 ms |
Express | 100 | 22.2k | 4.15 ms | 8 ms |
🏁 Análise Final
Maior Throughput em GET: Fastify liderou em todas as medições de leitura.
Maior Throughput em POST: Express foi ligeiramente melhor em 10 e 100 conexões, enquanto Fastify venceu em 50 conexões.
Latência: Fastify manteve menor latência média em GET, mas no POST os valores foram muito próximos.
Picos (p99): Express apresentou p99 menor em alguns cenários de POST.
🤔 Vale a pena migrar?
Benchmarks ajudam a embasar, mas sabe o que vai custar mesmo pro seu negócio?
Adicionar uma tecnologia que seu time não domina.
Adotar uma ferramenta que pode facilmente ser descontinuada amanhã
Ferramenta ruim para debugging e manutenção
Optar por uma mudança com uma visão clara das perdas e ganhos durante o processo (refactor, bugs, curva de aprendizado)
Mas pra não ficarmos só no depende, deixando aqui minha opinião pessoal, mas claro, vai muito de caso a caso.
Se sua API ainda é simples e atende bem, o Express continua sendo uma escolha sólida. Ele é maduro, estável, tem um ecossistema gigante e uma curva de aprendizado muito suave. Para muitas aplicações, isso basta.
Mas se o volume de requisições cresceu, o sistema começou a apresentar lentidão ou você quer otimizar o uso de recursos, ou quer começar hoje com um framework que nasceu depois do express trazendo vários aprendizados na bagagem, o Fastify pode ser o passo certo. Ele entrega mais performance com menos esforço computacional.
Dito isso, não é só sobre performance. 😅
💬 E aí, bora discutir?
Você já usou o Fastify em produção? Teve ganhos reais? Ou segue firme no Express sem problemas? Me conta aí nos comentários! Deixei aqui o repositório que utilizei para realizar os testes, fica a vontade pra dá uma olhada e sugerir melhorias lá: https://github.com/BrunoSSantana/bench-fastify-vs-express
Fastify vs Express: Teste de Fogo na Prática
Recentemente, encarei um desafio comum em inícios de projetos: qual framework http no ecossitema Node.js escolher. Dentre os frameworks mais no estilo minimal que era o que desejávamos vieram as duas maiores já em mente: Express e Fastify? E como gosto de decisões baseadas em dados (e não só hype), fui testar na prática e entende se o fastify de fato entrega tudo isso que vejo a comunidade fala (pelo menos a parte que chega até mim).
Preparei um benchmark simples entre os dois frameworks, usando rotas reais de leitura e escrita com carga crescente — e os resultados foram bem interessantes!
🧪 O que foi testado?
Montei um monorepo com pnpm
, contendo dois apps:
express-api
fastify-api
Cada um implementa as rotas:
GET /api/[framework]
: resposta simples ({ pong: true }
)POST /api/[framework]/user
: recebe payload JSON comname
eemail
O benchmark foi feito com o Autocannon, simulando cargas com:
🔁 10, 50 e 100 conexões simultâneas
⏱️ 10, 15 e 20 segundos de duração
✅ Medindo throughput (req/s), latência (média e p99), erros e timeouts
📊 Resultados
🚀 GET – Leitura Simples
Framework | Conexões | Req/s (média) | Latência Média | p99 |
---|---|---|---|---|
Fastify | 10 | 75.7k | 0.016 ms | 1 ms |
Express | 10 | 44.9k | 0.02 ms | 1 ms |
Fastify | 50 | 78.6k | 0.04 ms | 1 ms |
Express | 50 | 48.5k | 0.316 ms | 2 ms |
Fastify | 100 | 78.2k | 1.03 ms | 2 ms |
Express | 100 | 48.0k | 1.53 ms | 4 ms |
✍️ POST – Escrita com Payload
Framework | Conexões | Req/s (média) | Latência Média | p99 |
---|---|---|---|---|
Fastify | 10 | 34.7k | 0.046 ms | 1 ms |
Express | 10 | 38.6k | 0.016 ms | 0 ms |
Fastify | 50 | 26.5k | 1.66 ms | 10 ms |
Express | 50 | 25.7k | 1.76 ms | 5 ms |
Fastify | 100 | 20.1k | 4.60 ms | 14 ms |
Express | 100 | 22.2k | 4.15 ms | 8 ms |
🏁 Análise Final
Maior Throughput em GET: Fastify liderou em todas as medições de leitura.
Maior Throughput em POST: Express foi ligeiramente melhor em 10 e 100 conexões, enquanto Fastify venceu em 50 conexões.
Latência: Fastify manteve menor latência média em GET, mas no POST os valores foram muito próximos.
Picos (p99): Express apresentou p99 menor em alguns cenários de POST.
🤔 Vale a pena migrar?
Benchmarks ajudam a embasar, mas sabe o que vai custar mesmo pro seu negócio?
Adicionar uma tecnologia que seu time não domina.
Adotar uma ferramenta que pode facilmente ser descontinuada amanhã
Ferramenta ruim para debugging e manutenção
Optar por uma mudança com uma visão clara das perdas e ganhos durante o processo (refactor, bugs, curva de aprendizado)
Mas pra não ficarmos só no depende, deixando aqui minha opinião pessoal, mas claro, vai muito de caso a caso.
Se sua API ainda é simples e atende bem, o Express continua sendo uma escolha sólida. Ele é maduro, estável, tem um ecossistema gigante e uma curva de aprendizado muito suave. Para muitas aplicações, isso basta.
Mas se o volume de requisições cresceu, o sistema começou a apresentar lentidão ou você quer otimizar o uso de recursos, ou quer começar hoje com um framework que nasceu depois do express trazendo vários aprendizados na bagagem, o Fastify pode ser o passo certo. Ele entrega mais performance com menos esforço computacional.
Dito isso, não é só sobre performance. 😅
💬 E aí, bora discutir?
Você já usou o Fastify em produção? Teve ganhos reais? Ou segue firme no Express sem problemas? Me conta aí nos comentários! Deixei aqui o repositório que utilizei para realizar os testes, fica a vontade pra dá uma olhada e sugerir melhorias lá: https://github.com/BrunoSSantana/bench-fastify-vs-express