Projeto
Pagamentos — do Oracle aos Bancos
Pix, boleto registrado em dois bancos e recorrência de cartão atendidos por um banco Oracle de geração 2011, que não negocia o TLS que as APIs bancárias exigem — a volta: middlewares Node minúsculos que fazem o aperto de mão moderno.
O que fazer quando o banco de dados não fala o TLS das aplicações modernas? Trocar o banco é impossível; terceirizar é caro. A resposta real tem poucas dezenas de linhas: um processo Node por API, que aceita HTTP simples por dentro e fala por fora o dialeto que cada banco exigir — mTLS, OAuth, SOAP ou JSON.
O núcleo financeiro da instituição roda num Oracle de geração 2011 — o mesmo do case de PL/SQL — e precisa conversar com as APIs bancárias de hoje: Pix, registro online de boleto, assinatura recorrente de cartão. Essas APIs exigem TLS recente, certificado de cliente (mTLS) e OAuth — apertos de mão que o cliente HTTP de um banco dessa geração simplesmente não negocia.
A volta mora numa VM interna: um middleware Node por API bancária. O PL/SQL continua fazendo o que sempre fez — montar o payload e chamar HTTP simples dentro da rede — e o middleware acrescenta o que o contrato daquela API pede: token OAuth renovado a cada chamada onde há OAuth, o certificado digital da instituição no mTLS onde o banco o exige, SOAP/XML onde o contrato é legado — e devolve a resposta crua para o banco de dados decidir. O de Pix expõe duas rotas genéricas (PUT e GET autenticados); o de recorrência cobre o ciclo inteiro de clientes, planos e assinaturas em ~22 operações — cancelamento, projeção de cobranças, troca de cartão, mudança de data e valor, migração de plano —; os de boleto têm ~50 linhas cada.
A auditoria mora onde o financeiro mora: toda chamada grava request e response completos numa tabela do próprio Oracle, com status e detalhe do erro. Quando algo falha, a investigação começa no banco de dados, com o payload exato do momento — sem caçar log em servidor.
Em 2026, uma das instituições financeiras desativou seu stack antigo de certificados e a geração de Pix parou. O log de requisições apontou a rejeição na porta do banco; a correção foi renovar o certificado digital — zero linha de código alterada. Middleware fino tem essa virtude: quase não existe lugar para o bug morar.
Em números
- 4
- APIs bancárias atendidas
- ~22
- Operações de recorrência
- 49
- Linhas no menor middleware
- 0
- Código alterado no incidente
Decisões de engenharia
- 01
Tradutor, não plataforma
Cada API bancária tem seu processo minúsculo e independente — sem framework comum, sem deploy acoplado. Quando um banco muda o contrato, mexe-se num arquivo; quando um serviço cai, os outros nem ficam sabendo. A tentação de generalizar num "gateway de pagamentos" foi recusada de propósito: quatro tradutores pequenos são mais fáceis de auditar do que uma plataforma.
- 02
O TLS mora no middleware; o negócio, no PL/SQL
O Node não decide nada: recebe URL e payload, acrescenta a autenticação que o contrato pede e devolve a resposta. A regra financeira — quem pode gerar cobrança, com que valor, o que fazer com a resposta — continua nos packages onde sempre viveu, auditável no mesmo lugar de sempre. Separar o aperto de mão da decisão é o que mantém os middlewares finos.
- 03
Auditoria dentro do banco de dados
Toda chamada grava request e response completos, com status e detalhe, numa tabela do próprio Oracle. O diagnóstico de qualquer falha começa com o payload exato do momento — inclusive o do incidente de agosto, que foi resolvido lendo essa tabela, não caçando log em servidor.
- 04
O incidente que se resolveu sem código
Quando a instituição financeira desligou o stack antigo de certificados, a correção foi operacional: renovar o certificado digital e religar o fluxo — zero linha alterada. A espessura de um middleware é uma decisão de risco: quanto menos ele faz, menos lugares existem para quebrar quando o mundo do outro lado muda.
Arquitetura
PL/SQL
Monta e chama
O package financeiro posta HTTP simples na rede interna.
Middleware Node
OAuth + mTLS
A autenticação que cada contrato pede: token OAuth, certificado digital.
APIs bancárias
Pix · Boleto · Recorrência
Quatro APIs, cada uma com seu contrato — e seu próprio tradutor.
Auditoria
No próprio Oracle
Request e response completos, com status, em tabela do banco.
Stack