Integrações

TL;DR

Galho 9 da trilha Node Senior. Cobre as 10 integrações essenciais que qualquer API Node de produção precisa dominar: PostgreSQL via node-postgres (queries, pool, transações), Redis via ioredis (cache, pub/sub, TTL), BullMQ (filas de tarefas com Redis), Kafka via kafkajs (streaming de eventos, consumer groups, partições), gRPC via grpc-js (RPC tipado com Protocol Buffers), GraphQL via Apollo Server e Mercurius (schema-first, resolvers, N+1), WebSockets via ws e Socket.io (tempo real, rooms, namespaces), Clientes HTTP (fetch nativo, axios, got, undici — trade-offs e quando usar cada um), Padrões de resiliência (retry com backoff exponencial, circuit breaker, bulkhead), e Cheatsheet e decision tree para escolher a tecnologia certa para cada contexto de integração.

Sobre este galho

Este galho cobre integrações externas em Node.js: como conectar APIs com bancos de dados SQL, caches, filas, brokers de mensagens, serviços gRPC, GraphQL e clientes em tempo real. O foco é a camada de integração — onde a lógica de negócio encontra o mundo externo — e os padrões que tornam essas conexões resilientes, observáveis e testáveis em produção.

Integração mal feita é a principal fonte de falhas em microsserviços: connections leak, retries sem backoff, circuit breakers ausentes e pools subutilizados. Cada nota endereça um problema real com código de produção, diagnóstico de problemas comuns e vocabulário para entrevista senior.

Pré-requisito: index (galho 1) — event loop e async/await são fundamentais para entender como I/O externo é gerenciado. index (galho 4) — pressupõe uma API estruturada onde as integrações serão plugadas.

Audiência primária: dev senior em prep para entrevista internacional. Cada nota tem seção “Em entrevista” com resposta em inglês e vocabulário técnico.

Audiência secundária: dev que precisa integrar um serviço externo específico em API Node existente e quer o padrão correto sem reinventar a roda.

Conteúdo

Bloco A — Persistência e cache

  1. 01 - PostgreSQL com node-postgres — Conexão com PostgreSQL via pg: pool de conexões, queries parametrizadas, transações e prepared statements
  2. 02 - Redis e ioredis — Cache, pub/sub, TTL e estruturas de dados com ioredis v5; padrões de invalidação e uso correto de pipelines

Bloco B — Filas e mensageria

  1. 03 - BullMQ - filas de tarefas — Filas de tarefas com BullMQ sobre Redis: workers, retries, dead-letter queue, jobs recorrentes e monitoramento
  2. 04 - Kafka com kafkajs — Streaming de eventos com kafkajs: producers, consumers, consumer groups, partições, offsets e rebalance

Bloco C — Protocolos de comunicação

  1. 05 - gRPC com grpc-js — RPC tipado com Protocol Buffers: definição de serviços .proto, streaming bidirecional, interceptors e reflexão
  2. 06 - GraphQL com Apollo Server e Mercurius — APIs GraphQL em Node: schema-first com SDL, resolvers, DataLoader para N+1, subscriptions e comparativo Apollo vs Mercurius
  3. 07 - WebSockets com ws e Socket.io — Comunicação em tempo real: WebSocket nativo com ws, rooms e namespaces com Socket.io v4, autenticação e scaling horizontal

Bloco D — Clientes HTTP e resiliência

  1. 08 - Clientes HTTP - fetch, axios, got e undici — Clientes HTTP em Node.js: fetch nativo (Node 18+), axios, got e undici — performance, interceptors, retry e quando usar cada um
  2. 09 - Padrões de resiliência - retry, circuit breaker e bulkhead — Resiliência em integrações: retry com backoff exponencial, circuit breaker com opossum, bulkhead e timeout — protegendo a API de falhas em cascata

Bloco E — Fechamento

  1. 10 - Cheatsheet e decision tree de integrações — Decision tree para escolher a tecnologia certa: SQL vs Redis vs Kafka vs gRPC vs REST; cheatsheet de configurações essenciais por biblioteca

Rotas alternativas

Rota entrevista rápida

01 → 04 → 09 → 10. PostgreSQL (base), Kafka (mensageria — favorita em entrevista sênior), resiliência e decision tree. Cobre 80% das perguntas de system design sobre integrações em tempo mínimo.

Rota tempo real

07 → 03 → 09. WebSockets com Socket.io, BullMQ para background jobs desacoplados do websocket e padrões de resiliência para o sistema como um todo.

Rota microsserviços

05 → 04 → 09 → 10. gRPC para comunicação síncrona entre serviços, Kafka para comunicação assíncrona, resiliência e decision tree para tomar decisões arquiteturais defensáveis.

Rota performance de API

01 → 02 → 08 → 09. PostgreSQL com pool otimizado, Redis como cache na frente, cliente HTTP correto para chamadas externas e resiliência. Endereça os gargalos mais comuns em APIs Node.

Stack técnica

TecnologiaBibliotecaVersão
PostgreSQLpg (node-postgres)v8
Redisioredisv5
Filasbullmqv5
Kafkakafkajsv2
gRPC@grpc/grpc-jsv1.10+
GraphQL (framework)@apollo/serverv4
GraphQL (Fastify)mercuriuslatest
WebSocket nativowsv8
WebSocket full-featuredsocket.iov4
Circuit breakeropossumlatest
Resiliência geralcockatiellatest
HTTP clientfetch (Node 18+), axios, got, undici

Todas as notas

TABLE status, updated
FROM "03-Dominios/Node/Integrações"
WHERE type = "concept"
SORT file.name ASC

Veja também