Skip to content

Comparação de Stacks

Por que escolhemos cada tecnologia e quando usar cada uma.

Backend

TecnologiaQuando usarExemplo no projeto
GoPerformance crítica, baixa latênciaSPI Simulator, DICT Simulator
Node.jsPrototipagem rápida, ecossistema ricoISO 8583, Workflow Engine
GraphQLConsultas complexas, dados aninhadosLedger
RESTSimplicidade, CRUD básicoDICT, Open Finance

Go vs Node.js

┌─────────────────┬─────────────────┬─────────────────┐
│ Critério        │ Go              │ Node.js         │
├─────────────────┼─────────────────┼─────────────────┤
│ Latência        │ ~0.2ms          │ ~5ms            │
│ Memória         │ ~10MB           │ ~50MB           │
│ Throughput      │ 50K req/s       │ 2K req/s        │
│ Startup         │ ~50ms           │ ~2s             │
│ Learning curve  │ Alto            │ Baixo           │
│ Ecossistema     │ Crescendo       │ Maduro          │
│ Concorrência    │ Goroutines      │ Event loop      │
│ Deploy          │ Binário único   │ Node + node_modules │
└─────────────────┴─────────────────┴─────────────────┘

Quando usar Go

  • Sistemas financeiros (SPI, DICT)
  • APIs de alta performance
  • Microserviços com milhares de conexões
  • Where memory predictability matters

Quando usar Node.js

  • Protótipos e MVPs
  • CRUD APIs simples
  • Aplicações com lógica de negócio complexa
  • Times que conhecem JavaScript

Bancos de Dados

TecnologiaQuando usarExemplo no projeto
PostgreSQLDados estruturados, transaçõesReport System
MongoDBDados flexíveis, schema dinâmicoLedger, DICT
RedisCache, rate limiting, sessõesLeaky Bucket
MinIOStorage de arquivos (S3-compatible)Report System

PostgreSQL vs MongoDB

┌─────────────────┬─────────────────┬─────────────────┐
│ Critério        │ PostgreSQL      │ MongoDB         │
├─────────────────┼─────────────────┼─────────────────┤
│ Schema          │ Rígido          │ Flexível        │
│ Joins           │ Nativo          │lookup (lento)   │
│ Transações      │ ACID completo   │ Multi-document  │
│ Performance     │ Índices B-tree  │ Índices BSON    │
│ Escalabilidade  │ Vertical        │ Horizontal      │
│ JSON support    │ JSONB           │ Nativo          │
└─────────────────┴─────────────────┴─────────────────┘

Quando usar PostgreSQL

  • Dados relacionais (contas, transações)
  • Integridade referencial
  • Queries complexas com JOINs
  • Compliance e auditoria

Quando usar MongoDB

  • Dados semi-estruturados (logs, eventos)
  • Schema que muda frequentemente
  • Prototipagem rápida
  • Dados grandes com acesso sequencial

Frontend

TecnologiaQuando usarExemplo no projeto
Next.jsSSR, landing pages, SEOLanding Page
Vite + ReactSPA, apps internosKYC System
Radix UIComponentes acessíveisLanding Page
TailwindEstilização rápidaLanding Page

Infraestrutura

TecnologiaQuando usarExemplo no projeto
DockerContainerização localTodos os serviços
KubernetesOrdonação em produçãoDeploy
VercelFrontend e docsLanding Page, Docs
ProxmoxHipervisor on-premiseDevOps Challenge

A regra de ouro

Use a ferramenta certa para o job certo.

Não existe "melhor stack". Existem trade-offs.

  • Go é melhor para performance
  • Node.js é melhor para produtividade
  • PostgreSQL é melhor para dados estruturados
  • MongoDB é melhor para dados flexíveis
  • Docker é melhor para consistência
  • Kubernetes é melhor para escala

O objetivo é entender esses trade-offs e fazer escolhas informadas.