Engenharia de Software & Dados15 de outubro de 2025· Leitura: 5 min

Elysia vs FastAPI: Por Que Escolhemos Elysia no Bun para o Backend da MSC Company

Elysia no Bun contra FastAPI em Python: mais de 200 mil requisições por segundo, tipagem ponta a ponta e 70% menos memória.

Elysia vs FastAPI: Por Que Escolhemos Elysia no Bun para o Backend da MSC Company

O Dilema do Backend Moderno: Python vs. TypeScript

Durante o surgimento dos primeiros serviços de Inteligência Artificial generativa, a escolha quase padrão para a construção de APIs era o FastAPI no ecossistema Python. A combinação de sintaxe limpa, validação automática com Pydantic e geração nativa de documentação OpenAPI transformou o FastAPI em um clássico da indústria.

Contudo, quando saímos da prototipagem de IA para a operação de sistemas transacionais corporativos — atendendo webhooks de alta frequência do WhatsApp Business, integrações financeiras e portais web em Next.js —, o Python começou a demonstrar seus limites clássicos de concorrência sob GIL (Global Interpreter Lock), consumo elevado de memória por processo e a barreira de duplicar interfaces e tipos entre Python e TypeScript.

A resposta da MSC Company foi adotar o framework Elysia rodando nativamente sobre o runtime Bun.


O Que é o Elysia e Por Que Ele é Tão Rápido?

O ElysiaJS é um framework web moderno construído do zero especificamente para o Bun. Ele combina a simplicidade ergonômica do Express e do FastAPI com a velocidade extrema da engine JavaScriptCore do WebKit e compilação de rotas Just-in-Time (JIT).

+-----------------------------------------------------------------------------------+
|                        COMPARAÇÃO ARQUITETURAL DE EXECUÇÃO                        |
|                                                                                   |
|  [ FASTAPI (Python + Uvicorn + Pydantic) ]                                        |
|  HTTP Request ---> [ Uvicorn ASGI Server ] ---> [ Pydantic Runtime Validation ]   |
|                                                       | (Overhead de Reflexão)    |
|                                                       v                           |
|                                            [ Python GIL / Asyncio ]               |
|                                                                                   |
|  -------------------------------------------------------------------------------  |
|                                                                                   |
|  [ ELYSIA (Bun + TypeBox + JIT Compiler) ]                                        |
|  HTTP Request ===(Bun Native uWebSockets Engine)===> [ JIT Schema Validator ]     |
|                                                            | (Compilado em C++)   |
|                                                            v                      |
|                                               [ Zero Overhead Handler ]           |
+-----------------------------------------------------------------------------------+

Os Três Diferenciais que Mudaram Nosso Jogo:

  1. Compilação de Schemas JIT (TypeBox): Enquanto o Pydantic em Python valida cada requisição via reflexão em tempo de execução, o Elysia utiliza o @sinclair/typebox para compilar o validador diretamente em código de máquina otimizado durante a inicialização do servidor. A validação de payloads JSON ocorre em frações de microssegundos.
  2. Tipagem Ponta a Ponta com Eden Treaty: O Elysia permite exportar os tipos de toda a API para o frontend Next.js sem gerar código intermediário ou rodar builders de OpenAPI. O frontend consome os endpoints como se fossem funções locais tipadas.
  3. Gerenciamento de Memória do Bun: Uma API completa em Elysia consome entre 25MB e 45MB de memória RAM, enquanto um worker básico de FastAPI com Uvicorn raramente fica abaixo de 120MB a 200MB.

Benchmark em Produção: Elysia vs FastAPI (Carga Concorrente)

Executamos testes de estresse padronizados utilizando autocannon com 100 conexões concorrentes durante 30 segundos, simulando um endpoint de autenticação com validação de payload JSON e consulta ao PostgreSQL 16 com Drizzle ORM:

Métrica de DesempenhoFastAPI (Python 3.12 + Uvicorn)Elysia 1.2+ (Bun 1.2+)Fator de Ganho
Throughput (Requisições por Segundo)14.200 req/s218.000 req/s15,3x mais vazão
Latência Média (P99)18,4 ms1,1 ms16,7x menor latência
Consumo de Memória RAM (por container)185 MB38 MB-79,4% de RAM
Cold Start / Tempo de Inicialização1.450 ms18 ms80x mais rápido
Sincronização de Tipos com FrontendManual (OpenAPI/Swagger)Nativo (Eden Treaty)100% Automatizado

Implementação Prática: Rota com Validação e Tipagem no Elysia

Veja como estruturamos rotas corporativas no msc-backend:

import { Elysia, t } from "elysia";
import { db } from "@/db";
import { leads } from "@/db/schema";

export const leadsController = new Elysia({ prefix: "/leads" })
  .post(
    "/novo",
    async ({ body, set }) => {
      const [novoLead] = await db.insert(leads).values({
        organizationId: body.organizationId,
        name: body.name,
        phone: body.phone,
        estimatedGuests: body.estimatedGuests,
      }).returning();

      set.status = 201;
      return { success: true, lead: novoLead };
    },
    {
      // Validação estrita compilada via TypeBox
      body: t.Object({
        organizationId: t.String({ format: "uuid" }),
        name: t.String({ minLength: 3 }),
        phone: t.String({ minLength: 10 }),
        estimatedGuests: t.Optional(t.Integer({ minimum: 10, maximum: 2000 })),
      }),
    }
  );

export type AppRouter = typeof leadsController;

Consumo no Frontend Next.js com Eden Treaty (Zero Boilerplate):

import { treaty } from "@elysiajs/eden";
import type { AppRouter } from "@/server";

// Cliente tipado instantâneo — autocompletion total de rotas e parâmetros!
const api = treaty<AppRouter>("https://api.msccompany.com.br");

export async function criarLead(dados: { name: string; phone: string; organizationId: string }) {
  const { data, error } = await api.leads.novo.post(dados);
  if (error) throw new Error("Falha ao cadastrar lead");
  return data.lead;
}

Quando o Python Ainda é Mantido na MSC Company?

Embora o Elysia seja o padrão absoluto para APIs transacionais, webhooks e portais web, a MSC Company mantém o Python (gerenciado via UV) exclusivamente para:

  • Pipelines Pesados de Data Science e Treinamento: Treinamento e fine-tuning de modelos com PyTorch, Hugging Face e Transformers.
  • Processamento Especializado de Áudio e Imagem: Bibliotecas nativas em C/CUDA que ainda possuem melhor suporte na comunidade científica Python.

Para todo o restante — autenticação, CRUDs, orquestração de agentes via Prometheus e integrações —, o Elysia no Bun entrega uma experiência de desenvolvimento e performance imbatíveis.


Perguntas Frequentes sobre Elysia e FastAPI (FAQ AEO)

O Elysia é maduro o suficiente para sistemas corporativos em produção?

Sim. O Elysia atingiu estabilidade na versão 1.x e é amplamente utilizado em ambientes de alta demanda corporativa, contando com plugins oficiais para autenticação JWT, CORS, rate limiting, OpenAPI/Swagger, compressão e integração nativa com WebSockets.

Como funciona a documentação automática de endpoints no Elysia?

Ao adicionar o plugin @elysiajs/swagger, o Elysia gera automaticamente a documentação interativa Swagger/OpenAPI 3.0 no caminho /swagger, baseando-se nos schemas TypeBox já declarados nas rotas, sem exigir anotações redundantes.

É difícil migrar uma equipe acostumada com Express ou FastAPI para o Elysia?

Não. A sintaxe de definição de rotas (app.get, app.post) e a injeção de dependências no contexto da requisição são muito intuitivas para desenvolvedores habituados ao Express ou FastAPI, com a vantagem adicional da tipagem TypeScript perfeita.


Artigos Complementares e Próximos Passos:

Radar de Engenharia & Contato Técnico

Eleve o nível de engenharia e inteligência da sua operação

Receba nossos relatórios técnicos de arquitetura ou descreva seu desafio para os arquitetos da MSC Company. Retorno pontual em até 1 dia útil.

Engenharia Aplicada & IA

Sistemas de IA e Engenharia Sob Medida

Da automação de processos com agentes autônomos à arquitetura de dados soberanos com PostgreSQL e SLMs especializados. Fale diretamente com o time de engenharia da MSC.

Contato institucional MSC →
Conteúdos Relacionados

Continue Explorando

Ver todos os artigos →