☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta db2. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta db2. Mostrar todas as mensagens

segunda-feira, 28 de setembro de 2026

☕ ALAN TURING ENTRA NO CPD — O MAPA DOS AGENTES DE IA EXPLICADO POR UM MAINFRAMER

 


☕ UM CAFÉ NO BELLACOSA MAINFRAME

☕ ALAN TURING ENTRA NO CPD — O MAPA DOS AGENTES DE IA EXPLICADO POR UM MAINFRAMER

De currículo invisível, PF3 e SDSF até WLM, JES2, CICS, Db2, MQ e IMS — nove conversas sobre agentes de inteligência artificial que acabaram revelando que alguns dos problemas mais modernos da computação possuem parentes muito antigos.



🎬 PRÓLOGO — EU NÃO ESTAVA ESCREVENDO UMA SÉRIE

Existe uma coisa curiosa em escrever durante muitos anos.

Às vezes você pensa que está escrevendo artigos independentes.

Um assunto aparece.

Você investiga.

Escreve.

Publica.

Toma outro café.

Algumas semanas depois aparece outra pergunta.

Outro artigo.

Outro café.

Até que um dia você olha para trás e percebe:

Espere um pouco...

Esses textos estão conversando entre si.

Foi exatamente o que aconteceu com uma sequência de artigos que comecei a construir usando Alan Turing como nosso visitante imaginário dentro de um CPD.

No começo, a pergunta parecia relativamente simples:

Como devemos preparar pessoas para trabalhar com inteligência artificial?

Depois apareceu outra:

Como será a interface de um agente que não apenas responde, mas executa ações?

E outra:

Como descobriremos o que esse agente está fazendo?

Depois:

Quem decide qual agente é mais importante?

Quem coloca o trabalho para executar?

Como controlamos uma transação?

Onde guardamos o estado?

Como agentes conversam sem depender uns dos outros?

Como organizamos memória e contexto?

Quando percebi, Alan Turing já estava andando pelo corredor do CPD acompanhado de alguns velhos conhecidos:

ISPF
SDSF
WLM
JES2
CICS
Db2
MQ
IMS

E foi aí que apareceu a hipótese que une esta série inteira:

Talvez alguns dos problemas que estamos descobrindo agora nos agentes de IA sejam novos em implementação, escala e comportamento — mas não necessariamente novos como problemas de engenharia.

O mainframe passou décadas resolvendo problemas como:

IDENTIDADE
AUTORIZAÇÃO
EXECUÇÃO
PRIORIDADE
OBSERVABILIDADE
TRANSAÇÃO
ESTADO
MENSAGERIA
RECUPERAÇÃO
AUDITORIA
CONCORRÊNCIA
DEPENDÊNCIAS

Naturalmente:

JES2 não é um framework de agentes.

SDSF não é observabilidade de LLM.

WLM não é um scheduler de prompts.

CICS não é LangGraph.

Db2 não é memória de IA.

MQ não é protocolo mágico entre agentes.

IMS não foi inventado para armazenar a infância digital de um robô.

😂

A comparação é conceitual.

E justamente por isso ela é tão interessante.

Este artigo é o mapa dessa viagem.



🧠 CAPÍTULO 1 — O CURRÍCULO INVISÍVEL DA INTELIGÊNCIA ARTIFICIAL

Antes de construir o agente, precisamos construir quem vai trabalhar com ele

👉 ALAN TURING E O CURRÍCULO INVISÍVEL DA INTELIGÊNCIA ARTIFICIAL

Nossa viagem começa antes da arquitetura.

Começa nas pessoas.

Existe uma tentação enorme diante de qualquer revolução tecnológica:

NOVA TECNOLOGIA
      ↓
NOVO CURSO
      ↓
NOVA FERRAMENTA
      ↓
CERTIFICADO
      ↓
PRONTO

Mas nunca foi tão simples.

Quem viveu várias gerações da informática sabe disso.

Aprender COBOL não significava apenas conhecer:

MOVE
PERFORM
IF
EVALUATE

O programador acabava aprendendo silenciosamente muitas outras coisas:

  • decomposição de problemas;

  • leitura de documentação;

  • disciplina operacional;

  • análise de impacto;

  • debugging;

  • responsabilidade sobre dados;

  • relacionamento com usuários;

  • conhecimento do negócio;

  • avaliação de riscos.

Existe, portanto, um currículo formal e outro quase invisível.

Com IA acontece algo semelhante.

Prompt engineering pode ser útil.

Conhecer modelos também.

Mas trabalhar seriamente com IA começa a exigir algo muito maior:

IA
│
├── pensamento crítico
├── validação
├── segurança
├── privacidade
├── conhecimento de domínio
├── avaliação de resultados
├── automação
├── ética
├── governança
└── capacidade de perguntar

Este primeiro artigo estabelece o fundamento humano da série.

Antes de perguntar:

O que o agente pode fazer?

precisamos perguntar:

Quem saberá dizer se aquilo que ele fez está correto?

Esse detalhe acompanhará todos os capítulos seguintes.



🤖 CAPÍTULO 2 — A UX DOS AGENTES

Quando PF3 voltou para salvar a inteligência artificial

👉 ALAN TURING E A UX DOS AGENTES — QUANDO PF3, MAXCC E RACF VOLTARAM PARA SALVAR A INTELIGÊNCIA ARTIFICIAL

Então demos autonomia à máquina.

E imediatamente apareceu outro problema.

Um chatbot responde.

Um agente age.

Essa diferença parece pequena até colocarmos ferramentas nas mãos dele.

Imagine:

USUÁRIO
   ↓
OBJETIVO
   ↓
AGENTE
   ├── consulta arquivos
   ├── chama API
   ├── pesquisa banco
   ├── altera documento
   ├── envia mensagem
   └── executa processo

De repente a interface precisa responder perguntas que o velho chatbot não precisava responder:

O QUE ESTÁ FAZENDO?

POR QUE ESTÁ FAZENDO?

QUAL ETAPA ESTÁ EXECUTANDO?

POSSO PARAR?

POSSO DESFAZER?

QUEM AUTORIZOU?

O QUE JÁ FOI ALTERADO?

E eis que aparece nosso velho amigo:

PF3

O PF3 torna-se uma metáfora perfeita para interruptibilidade.

O artigo também traz RACF para a conversa por meio do princípio de menor privilégio.

Se um agente precisa ler relatórios:

READ

por que entregar:

ALTER
DELETE
CONTROL

?

Não entregue uma bazuca para matar um mosquito.

E jamais resolva problemas de autorização usando a filosofia:

DÊ ACESSO A TUDO
       ↓
DEPOIS A GENTE VÊ

Quatro décadas de segurança corporativa já ensinaram como essa história termina.

O capítulo estabelece uma nova regra:

Autonomia sem controle não é sofisticação. É risco operacional.



🔭 CAPÍTULO 3 — O SDSF DOS AGENTES

Não basta o robô trabalhar. Precisamos enxergar o que está acontecendo.

👉 ALAN TURING E O SDSF DOS AGENTES — O QUE DIABOS O ROBÔ ESTÁ FAZENDO?

Agora o agente está trabalhando.

Maravilha.

Só existe uma pequena pergunta:

O que ele está fazendo?

Quem trabalhou com batch conhece uma rotina quase instintiva:

SUBMIT
  ↓
SDSF
  ↓
ST
  ↓
JOB
  ↓
OUTPUT

Não ficamos olhando para o terminal durante quinze minutos vendo:

Working...

Queremos estado.

Queremos evidência.

Queremos saber onde o processamento está.

A documentação da IBM confirma exatamente essa função histórica do SDSF: monitorar e controlar processamento, visualizar jobs e seus outputs e permitir ações como hold, release e cancel.

Transportando o princípio para agentes:

AGENTE FINANCEIRO

OBJETIVO:
Consolidar relatório mensal

STATUS:
Executando

ETAPA 1 — localizar arquivos       OK
ETAPA 2 — validar período          OK
ETAPA 3 — consultar Db2            OK
ETAPA 4 — reconciliar valores      RUNNING
ETAPA 5 — gerar relatório          WAITING
ETAPA 6 — enviar relatório         APPROVAL

Esse talvez seja um dos conceitos mais importantes da série.

Autonomia aumenta a necessidade de observabilidade.

Quanto menos diretamente o humano controla cada passo, mais importante se torna enxergar o estado da execução.



⚖️ CAPÍTULO 4 — O WLM DOS AGENTES

Quando descobrimos que nem todo trabalho possui a mesma importância

👉 ALAN TURING E O WLM DOS AGENTES

Agora temos outro problema.

Imagine mil agentes querendo trabalhar simultaneamente.

Um está:

resumindo newsletter

Outro:

processando fraude bancária

Outro:

gerando imagem

Outro:

atendendo cliente VIP

Outro:

fechando folha de pagamento

Todos deveriam receber os mesmos recursos?

Evidentemente não.

Bem-vindo ao velho problema de workload management.

No z/OS, WLM trabalha justamente com classes de serviço, metas de desempenho e importância relativa do trabalho. Quando todos os objetivos não podem ser satisfeitos simultaneamente, essa importância participa das decisões de gerenciamento dos recursos.

Nos agentes podemos imaginar:

AGENT WORKLOAD
│
├── CRITICAL
│   └── fraude
│
├── HIGH
│   └── atendimento
│
├── NORMAL
│   └── relatórios
│
└── DISCRETIONARY
    └── indexação histórica

E aparece outra ideia fundamental:

Agentes competirão por recursos.

Tokens custam.

GPU custa.

CPU custa.

APIs possuem limites.

Bancos possuem capacidade.

Pessoas disponíveis para aprovação humana também são um recurso limitado.

O problema deixa de ser:

O agente consegue executar?

e passa a ser:

Qual trabalho merece recursos primeiro?

Alan Turing acaba de conhecer o WLM.



🏭 CAPÍTULO 5 — O JES2 DOS AGENTES

Alguém precisa receber, organizar e despachar o trabalho

👉 ALAN TURING E O JES2 DOS AGENTES

Temos prioridades.

Temos recursos.

Temos agentes.

Agora alguém precisa organizar a bagunça.

No mundo batch, JES recebe jobs, mantém trabalhos em filas, encaminha jobs para execução e administra seus outputs. É exatamente assim que a própria documentação introdutória do z/OS descreve suas funções fundamentais.

Conceitualmente:

SUBMISSÃO
    ↓
  FILA
    ↓
CLASSIFICAÇÃO
    ↓
DESPACHO
    ↓
EXECUÇÃO
    ↓
 RESULTADO

Agora substitua JOB por TASK:

TASK-8472
OBJETIVO = analisar contratos
PRIORIDADE = HIGH
AGENTE = LEGAL-07
STATUS = WAITING

Começamos a perceber que um ecossistema corporativo de agentes precisará responder:

Quem recebeu a tarefa?

Onde ela está?

Quem executará?

Está esperando?

Está rodando?

Falhou?

Pode reiniciar?

Existe dependência?

Qual resultado produziu?

Não significa transformar JES2 em orquestrador de LLM.

Significa reconhecer que gerenciamento do ciclo de vida do trabalho é um problema antigo.


⚡ CAPÍTULO 6 — O CICS DOS AGENTES

Quando inteligência encontra transação

👉 ALAN TURING E O CICS DOS AGENTES

Até aqui nossos agentes estavam realizando trabalho.

Mas empresas não vivem apenas de trabalho.

Vivem de transações.

Comprar.

Vender.

Reservar.

Cancelar.

Transferir.

Atualizar.

Consultar.

Registrar.

CICS existe justamente no universo de processamento transacional. Uma transação dispara programas associados, pode envolver diversos programas e recursos, e muitas instâncias podem executar concorrentemente.

Agora imagine um agente recebendo:

Resolva o problema deste cliente.

Ele talvez precise:

CONSULTAR PEDIDO
      ↓
CONSULTAR PAGAMENTO
      ↓
VALIDAR ENTREGA
      ↓
CALCULAR CRÉDITO
      ↓
ATUALIZAR CADASTRO

Não estamos mais falando apenas de linguagem.

Estamos mexendo no estado real do negócio.

Aqui surge uma fronteira essencial:

PENSAR
≠
AGIR

e:

GERAR UMA RESPOSTA
≠
EXECUTAR UMA TRANSAÇÃO

Quando um agente atravessa essa fronteira, entram em cena concorrência, integridade, autorização, recuperação e consistência.

O simpático chatbot acabou de entrar em produção.

Agora a brincadeira ficou séria.


🗄️ CAPÍTULO 7 — O DB2 DOS AGENTES

Quando o agente descobriu que memória também precisa de COMMIT

👉 ALAN TURING E O DB2 DOS AGENTES

Um agente sem estado vive eternamente no presente.

Para realizar trabalhos complexos ele precisa guardar coisas.

Por exemplo:

objetivos
tarefas
resultados
aprovações
clientes
documentos
eventos
checkpoints
estado do workflow

Mas guardar informação introduz um problema:

Quando uma mudança se torna definitiva?

O velho Db2 imediatamente levanta a mão.

No Db2, uma unidade de trabalho representa uma sequência recuperável de operações; COMMIT confirma as mudanças e ROLLBACK pode desfazer alterações ainda não confirmadas.

Isso produz uma analogia poderosa para agentes.

Imagine:

LER
 ↓
ANALISAR
 ↓
PROPOR ALTERAÇÃO
 ↓
VALIDAR
 ↓
APROVAÇÃO
 ↓
COMMIT

Se algo falhar:

ROLLBACK

Mas existe uma pegadinha deliciosa.

Nem tudo no mundo possui rollback.

Se o agente:

ENVIAR EMAIL

não existe:

ROLLBACK EMAIL

que retire a mensagem da cabeça de quem leu.

😂

Portanto sistemas de agentes precisam distinguir ações reversíveis de ações irreversíveis.

O Db2 nos ensina algo maior que SQL:

Estado precisa possuir fronteiras de consistência.


📨 CAPÍTULO 8 — O MQ DOS AGENTES

Mensagem enviada não significa destinatário disponível

👉 ALAN TURING E O MQ DOS AGENTES — MENSAGEM ENVIADA NÃO SIGNIFICA CONVERSA SÍNCRONA

Então nossos agentes começaram a conversar.

E imediatamente alguém inventou:

AGENTE A
   ↓
AGENTE B
   ↓
AGENTE C

Parece maravilhoso.

Até o agente B ficar indisponível.

Ou lento.

Ou ocupado.

Ou reiniciar.

Ou o agente C morar em outro ambiente.

É exatamente aqui que décadas de mensageria corporativa começam a parecer extremamente atuais.

IBM MQ permite que aplicações se comuniquem através de mensagens e filas, inclusive executando em momentos, velocidades e locais diferentes. Produtor e consumidor podem ficar desacoplados.

Portanto:

AGENTE A
   ↓
 MENSAGEM
   ↓
  FILA
   ↓
AGENTE B

A existência da fila muda completamente a arquitetura.

O produtor não precisa necessariamente ficar parado olhando para o consumidor.

Podemos construir sistemas:

ASSÍNCRONOS
RESILIENTES
DESACOPLADOS
DISTRIBUÍDOS

Mas surgem novos problemas:

ordenação
duplicidade
correlação
persistência
retry
dead letter
idempotência
timeout

A IBM também documenta que filas mantêm mensagens até que aplicações possam recuperá-las e que consumidores e produtores podem operar desacoplados.

De repente, multiagentes deixam de parecer uma reunião de robôs conversando.

Começam a parecer...

sistemas distribuídos.

Bem-vindo ao inferno.

Tem café na entrada.


🌳 CAPÍTULO 9 — O IMS DOS AGENTES

Quando Alan Turing descobriu que encontrar um filho é fácil se você souber quem é o pai

👉 ALAN TURING E O IMS DOS AGENTES — QUANDO O MUNDO VIROU UMA ÁRVORE

Finalmente chegamos ao IMS.

E aparece uma pergunta fascinante:

Toda memória precisa ser representada como tabela?

Não.

IMS trabalha historicamente com modelo hierárquico.

Temos relações:

ROOT
 │
 ├── CHILD
 │     ├── CHILD
 │     └── CHILD
 │
 └── CHILD

Na terminologia oficial do IMS, segmentos possuem relações parent/child; um segmento pode inclusive ser filho de um segmento e pai de outro.

Isso oferece uma metáfora extraordinariamente útil para determinados tipos de contexto de agentes.

Imagine:

CLIENTE
│
├── PEDIDOS
│   ├── PEDIDO 8472
│   │   ├── ITENS
│   │   ├── PAGAMENTO
│   │   └── ENTREGA
│   └── PEDIDO 9011
│
├── CONTRATOS
│
└── ATENDIMENTOS

Contexto frequentemente possui relações naturais.

A própria IBM explica uma diferença fundamental: numa base hierárquica IMS, segmentos ao longo de um caminho hierárquico já possuem relações implícitas com pais e filhos, enquanto no modelo relacional relacionamentos normalmente são construídos explicitamente por joins.

Isso não significa:

Vamos substituir vector databases por IMS!

Calma.

😂

A lição é mais interessante:

A forma como representamos conhecimento influencia profundamente a maneira como conseguimos navegar por ele.

E assim chegamos da execução à memória.


🗺️ CAPÍTULO 10 — AGORA OLHE PARA O MAPA INTEIRO

Depois dos nove artigos, podemos finalmente enxergar a arquitetura escondida.

┌───────────────────────────────────────┐
│       CURRÍCULO INVISÍVEL             │
│ Quem está preparado para trabalhar?   │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│          UX / PF3 / RACF              │
│ Como controlar autonomia?             │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│               SDSF                    │
│ O que está acontecendo?               │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│                WLM                    │
│ Qual trabalho é mais importante?      │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│               JES2                    │
│ Quem recebe e despacha o trabalho?    │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│               CICS                    │
│ Como executar ações de negócio?       │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│               Db2                     │
│ Como manter estado consistente?       │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│                MQ                     │
│ Como componentes conversam?           │
└──────────────────┬────────────────────┘
                   ↓
┌───────────────────────────────────────┐
│               IMS                     │
│ Como organizar e navegar contexto?    │
└───────────────────────────────────────┘

Agora a série revela algo que talvez não estivesse completamente evidente quando escrevemos o primeiro artigo.

Não estamos mais discutindo simplesmente:

INTELIGÊNCIA ARTIFICIAL

Estamos discutindo:

SISTEMAS DE INTELIGÊNCIA ARTIFICIAL

Essa diferença é gigantesca.


🧩 CAPÍTULO 11 — O AGENTE DEIXOU DE SER O CENTRO

Durante algum tempo olhamos para IA assim:

PROMPT
  ↓
LLM
  ↓
RESPOSTA

Só que um sistema corporativo real começa a parecer muito mais com:

                    USUÁRIO
                       │
                       ↓
                   OBJETIVO
                       │
                       ↓
                 ORQUESTRADOR
                       │
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
     AGENTE A       AGENTE B       AGENTE C
        │              │              │
        └──────────────┼──────────────┘
                       ↓
                    TOOLS
        ┌──────────────┼──────────────┐
        ↓              ↓              ↓
       DB             MQ             API
        │
        ↓
      ESTADO

E ao redor disso precisamos:

IDENTIDADE
AUTORIZAÇÃO
OBSERVABILIDADE
AUDITORIA
PRIORIZAÇÃO
RECUPERAÇÃO
LIMITES
CHECKPOINTS
APROVAÇÕES
MENSAGERIA
TRANSAÇÕES

O LLM continua importante.

Mas ele passa a ser um componente da arquitetura.

Essa talvez seja a evolução mais importante de toda a série.


🧙 CAPÍTULO 12 — TURING FAZ A PERGUNTA ERRADA

Alan Turing olha para nosso jovem programador COBOL.

E pergunta:

— Então finalmente construímos uma máquina que pensa?

O programador olha para o CPD.

Olha para:

SDSF
WLM
JES2
CICS
DB2
MQ
IMS

Depois olha para o pequeno agente trabalhando no terminal.

E responde:

— Não sei.

Turing fica surpreso.

— Depois de tudo isso?

— Talvez a pergunta tenha mudado.

— Como assim?

O programador pega uma caneta.

E escreve no quadro:

CAN MACHINES THINK?

Risca.

Embaixo escreve:

CAN MACHINES WORK
SAFELY,
RELIABLY,
OBSERVABLY
AND
RESPONSIBLY?

Turing olha.

Sorri.


🦖 CAPÍTULO 13 — O MAINFRAME NÃO PREVIU A IA

E precisamos deixar uma coisa muito clara.

O mainframe não previu os LLMs.

JES2 não é ancestral tecnológico direto de agentes.

WLM não administra pensamentos.

CICS não executa raciocínio.

Db2 não possui consciência.

MQ não faz robôs fofinhos conversarem.

IMS não é cérebro artificial.

O valor da comparação está em outro lugar.

Durante décadas sistemas corporativos precisaram responder:

Quem pode executar?

O que pode executar?

Quando executará?

Com qual prioridade?

Sobre quais recursos?

Como sabemos que terminou?

O que acontece quando falha?

Como desfazemos mudanças?

Como componentes se comunicam?

Como reconstruímos o que aconteceu?

Essas perguntas reaparecem quando agentes deixam o laboratório e começam a operar sistemas reais.

Não copiamos a solução.

Reaproveitamos o conhecimento de engenharia.


🥚 EASTER EGG — O PROGRAMA QUE JÁ ESTAVA RODANDO

Turing caminha até o último terminal do CPD.

Na tela existe apenas:

READY

Ele digita:

WHO

A máquina responde:

TURING

Ele pergunta:

STATUS

Resposta:

ACTIVE

Turing sorri.

— Interessante.

O programador COBOL pergunta:

— O quê?

— Passamos nove capítulos tentando descobrir como controlar agentes inteligentes.

— Sim.

Turing aponta para o CPD.

— E vocês passaram cinquenta anos construindo sistemas para controlar humanos, programas, jobs, transações e mensagens.

Silêncio.

O operador do outro lado da sala grita:

— JOB ABENDOU!

Turing pergunta:

— S0C7?

— S0C7!

Turing pega seu café.

— Algumas coisas realmente nunca mudam.

😂


☕ EPÍLOGO — TALVEZ O FUTURO TENHA CHEIRO DE CPD

Existe uma tendência natural na tecnologia de acreditar que tudo começou ontem.

Cada nova geração cria novas palavras.

Novos frameworks.

Novos diagramas.

Novas abstrações.

E muitas delas realmente representam avanços extraordinários.

Mas engenharia também possui memória.

Quando vejo agentes de IA discutindo:

orchestration
observability
workload
state
messaging
transactions
authorization
checkpoints
recovery

é impossível para quem viveu mainframe não sentir um estranho déjà-vu.

Não porque sejam as mesmas tecnologias.

Não são.

Mas porque computadores continuam enfrentando alguns problemas fundamentais:

TRABALHO PRECISA SER ORGANIZADO.

RECURSOS SÃO FINITOS.

ESTADO PRECISA SER PROTEGIDO.

FALHAS ACONTECEM.

MENSAGENS SE PERDEM.

SISTEMAS FICAM INDISPONÍVEIS.

USUÁRIOS COMETEM ERROS.

PROGRAMAS COMETEM ERROS.

AUTOMAÇÃO AMPLIFICA ERROS.

E agora acrescentamos uma criatura nova:

AGENTES PODEM ESCOLHER A PRÓXIMA AÇÃO.

Isso muda muita coisa.

Mas não apaga setenta anos de engenharia de sistemas.

Talvez faça justamente o contrário.

Torne esse conhecimento ainda mais valioso.

Por isso esta série não é apenas sobre Alan Turing.

Não é apenas sobre mainframe.

E nem sequer é apenas sobre inteligência artificial.

É sobre algo muito mais antigo:

COMO CONSTRUÍMOS SISTEMAS NOS QUAIS PODEMOS CONFIAR?

Começamos ensinando pessoas.

Depois demos autonomia à máquina.

Criamos formas de observá-la.

Priorizamos seu trabalho.

Organizamos suas filas.

Controlamos suas transações.

Protegemos seu estado.

Permitimos que conversasse com outros sistemas.

Finalmente começamos a organizar sua memória.

E talvez este seja apenas o começo.

Porque no fundo do CPD existe uma porta.

Turing acabou de encontrá-la.

Na porta existe uma pequena placa:

AGENTS
AUTHORIZED PERSONNEL ONLY

Ele olha para nós.

— Vamos?

O programador COBOL suspira.

Salva tudo.

Confere o spool.

E responde:

— Só depois do café.

☕

Bellacosa Mainframe

☕ UM CAFÉ NO BELLACOSA MAINFRAME

🤖 Alan Turing entra no CPD

O mapa dos agentes de IA explicado por um mainframer

Esta série acompanha a evolução de uma ideia: compreender os problemas modernos dos agentes de inteligência artificial usando conceitos conhecidos por quem trabalha com mainframe, IBM Z e sistemas corporativos.

A viagem começa pelas pessoas e pela experiência de uso, passa por observabilidade, priorização e execução, chega às transações, estado e mensageria e termina na organização hierárquica do contexto.

01
FEV / 2023

🧠 O currículo invisível da inteligência artificial

Antes de construir agentes inteligentes precisamos preparar as pessoas que trabalharão com eles. Técnica, pensamento crítico, conhecimento de negócio, segurança, ética e responsabilidade formam o currículo que nem sempre aparece no certificado.

02
MAR / 2023

🤖 A UX dos agentes

Quando uma IA deixa de apenas responder e começa a executar ações, sua interface precisa mostrar objetivos, progresso, permissões e resultados. PF3, MAXCC e RACF tornam-se excelentes analogias para controle, retorno e privilégio mínimo.

04
MAI / 2023

⚖️ O WLM dos agentes

CPU, GPU, tokens, APIs e bancos de dados são recursos finitos. O Workload Manager inspira uma discussão sobre prioridades, objetivos de serviço, importância do trabalho e distribuição dinâmica de recursos entre agentes.

06
JUL / 2023

⚡ O CICS dos agentes

Uma coisa é uma IA produzir texto. Outra é permitir que ela execute operações reais de negócio. CICS introduz a conversa sobre processamento transacional, concorrência, segurança e integridade.

07
AGO / 2023

🗄️ O Db2 dos agentes

Agentes precisam manter estado, checkpoints, decisões e resultados. O Db2 fornece o ponto de partida para discutir unidade de trabalho, consistência, COMMIT, ROLLBACK e recuperação.

10
SET / 2026

☕ Alan Turing entra no CPD — O mapa completo

O artigo-âncora reúne toda a evolução da ideia: pessoas, UX, observabilidade, prioridade, orquestração, transações, estado, mensageria e contexto transformam artigos independentes em uma arquitetura conceitual para agentes de IA.

🖥️ Leitor da série

Selecione qualquer capítulo acima para abri-lo normalmente. O painel abaixo é apenas um recurso adicional de navegação.

quarta-feira, 23 de setembro de 2026

🐷 A FÁBULA DOS PORCOS ASSADOS NO MAINFRAME

 

Bellacosa Mainframe entre porcos e computadores visoes do sistema legado

☕ Um Café no Bellacosa Mainframe

🐷 A FÁBULA DOS PORCOS ASSADOS NO MAINFRAME

Ou: como uma empresa construiu 47 subsistemas, 312 jobs, 18 filas de MQ e uma War Room para continuar incendiando a floresta

Era uma vez uma enorme empresa que possuía um mainframe.

Ninguém sabia exatamente quando o primeiro programa havia entrado em produção.

Alguns diziam 1974.

Outros juravam ter encontrado um comentário COBOL contendo:

* ALTERADO EM 12/08/1969 - J.SILVA

Mas ninguém tinha coragem de investigar aquilo profundamente.

O importante era que o mainframe funcionava.

E dentro daquele mainframe existia o mais importante sistema corporativo da empresa:


🐷 O SISTEMA DE ASSAR PORCOS

A história começara décadas antes.

Certo dia, um incêndio acidental atingiu uma floresta próxima ao Data Center.

Havia porcos na floresta.

Quando o incêndio terminou, descobriram que os porcos haviam sido assados.

E estavam deliciosos.

Um programador teve então uma ideia:

— Quando precisarmos de porcos assados, podemos incendiar outra floresta.

Funcionou.

Foi criado o primeiro procedimento operacional:

PROC-PORCO-001 — Procedimento para Incêndio Controlado de Floresta para Produção de Porcos Assados.

Durante algum tempo, tudo correu maravilhosamente.

Quando alguém queria porco assado:

  1. colocavam os porcos na floresta;

  2. incendiavam a floresta;

  3. esperavam;

  4. recolhiam os porcos;

  5. serviam o jantar.

Era simples.

Até a empresa crescer.



🖥️ A INDUSTRIALIZAÇÃO DO PORCO

O número de clientes aumentou.

Agora não eram dez porcos.

Eram dez mil.

Foi necessário automatizar o processo.

Um programador COBOL escreveu:

PORC001

Outro criou:

PORC002

Depois vieram:

PORC003

PORC003A

PORC003B

PORC003B2

e finalmente:

PORC003B2N

Ninguém sabia onde estava PORC003B1.

Mas havia referências a ele em três copybooks.

Por segurança, ninguém mexia.

O processo passou a ser executado pelo JES2.

Às 22:00:

JOB PORCO01

selecionava os animais.

Às 22:30:

JOB FLOREST1

identificava uma floresta disponível.

Às 23:00:

JOB FIRE001

iniciava o incêndio.

À 01:00:

JOB ASSADO1

calculava o grau provável de cozimento.

Às 03:17, invariavelmente, alguma coisa dava errado.

Então começava a War Room.



🔥 O PRIMEIRO INCIDENTE

Certa madrugada, metade dos porcos saiu crua.

A outra metade virou carvão.

Foi declarado:

SEV1 — CRITICAL INCIDENT

Trinta e sete pessoas entraram na conferência.

— É COBOL?

— Não.

— É CICS?

— Não.

— Db2?

— Normal.

— MQ?

— Algumas filas estão crescendo.

— CPU?

— 43%.

— WLM?

— Dentro da política.

— Storage?

— Normal.

Finalmente alguém perguntou:

— E o fogo?

Silêncio.

Ninguém da reunião pertencia à equipe responsável pelo fogo.

Foi necessário abrir um chamado.

INC00473192

A equipe respondeu:

FIRE SYSTEM OPERATING AS DESIGNED.

O incidente foi encerrado como:

ROOT CAUSE UNKNOWN.



🐷 CRIA-SE A ENGENHARIA DE PORCOS

A direção decidiu que aquilo jamais poderia acontecer novamente.

Foi criado o departamento de:

Enterprise Pig Roasting Architecture — EPRA.

O departamento estabeleceu padrões.

Agora cada porco precisava possuir:

  • PIG-ID;

  • peso;

  • idade;

  • raça;

  • temperatura inicial;

  • floresta de destino;

  • horário de entrada;

  • previsão de cozimento;

  • classificação de criticidade.

Foi criado um banco Db2.

TB_PORCO
TB_FLORESTA
TB_INCENDIO
TB_ASSAMENTO
TB_TEMPERATURA
TB_PORCO_FLORESTA

Um arquiteto observou que TB_PORCO_FLORESTA possuía uma relação N:N problemática.

Foram necessárias seis reuniões.

Enquanto isso, os porcos continuavam queimando.


📊 OBSERVABILIDADE

Alguém afirmou:

— O problema é falta de observabilidade.

Todos concordaram.

Foram instalados sensores.

Dashboards.

Métricas.

Logs.

Tracing.

Alertas.

Agora era possível saber em tempo real:

PIGS_PER_SECOND

MEAN_TIME_TO_ROAST

FOREST_BURN_RATE

AVERAGE_PIG_TEMPERATURE

PIG_ERROR_RATE

CARBONIZED_PIG_PERCENTAGE

Um enorme monitor foi colocado no NOC.

Quando um porco queimava demais, uma linha ficava vermelha.

Os executivos ficaram impressionados.

— Agora temos visibilidade!

Os porcos continuavam queimando.

Mas agora isso podia ser acompanhado num dashboard.


☁️ A MODERNIZAÇÃO

Chegou então um consultor.

Depois de analisar a arquitetura durante três semanas, apresentou 186 slides.

O primeiro dizia:

DIGITAL PIG TRANSFORMATION

A conclusão era clara:

o problema estava no legado.

Era necessário modernizar.

O COBOL PORC001 foi encapsulado por uma API REST.

Agora era possível incendiar a floresta utilizando:

POST /api/v1/pigs/roast

Payload:

{
  "pigId": "0004711",
  "forest": "F023",
  "roastingLevel": "MEDIUM"
}

A API chamava z/OS Connect.

Que chamava CICS.

Que chamava COBOL.

Que gravava Db2.

Que publicava MQ.

Que finalmente executava:

INCENDIAR FLORESTA.

O CIO apresentou o projeto numa conferência:

“Transformamos nosso processo tradicional de produção de alimentos em uma plataforma API-first.”

Todos aplaudiram.

Os porcos continuavam sendo assados incendiando florestas.


☁️🐷 PORCOS NA CLOUD

Um novo estudo concluiu que o problema era outro.

A floresta estava on-premises.

Foi criado então:

Hybrid Cloud Pig Roasting Architecture.

O cadastro dos porcos foi para a cloud.

O sistema de incêndio permaneceu no mainframe.

Kafka transmitia eventos:

PIG_ENTERED_FOREST

FOREST_IGNITED

PIG_TEMPERATURE_CHANGED

PIG_ROASTED

PIG_OVERCOOKED

Um Data Lake armazenava vinte anos de telemetria de porcos queimados.

Machine Learning começou a prever quais porcos provavelmente seriam carbonizados.

A precisão chegou a 94%.

Um executivo perguntou:

— E conseguimos evitar que eles queimem?

O cientista de dados respondeu:

— Ainda não. Mas conseguimos prever com excelente precisão quais irão queimar.

O projeto recebeu um prêmio de inovação.


🤖 CHEGA A INTELIGÊNCIA ARTIFICIAL

Em 2026 surgiu a grande esperança.

IA Generativa.

Foi criado:

PigGPT Enterprise Edition.

A IA recebeu documentação, runbooks, logs, dumps, métricas SMF e quarenta anos de incidentes.

Perguntaram:

— Como melhorar o sistema de assar porcos?

A IA respondeu:

“Talvez seja possível assar os porcos diretamente utilizando uma fonte controlada de calor, sem incendiar uma floresta inteira.”

A resposta foi classificada como:

LOW CONFIDENCE / REQUIRES HUMAN VALIDATION

Um comitê de governança de IA foi convocado.

Após oito reuniões decidiu-se que a sugestão representava risco arquitetural porque não respeitava o processo corporativo estabelecido.


👨‍💻 JOÃO BOM-SENSO ENTRA NO CPD

Foi então que apareceu João.

João era programador COBOL.

Não era Distinguished Engineer.

Não era Enterprise Architect.

Não possuía certificação em transformação digital de porcos.

Ele estava apenas acompanhando um incidente.

Olhou os diagramas.

Olhou os jobs.

Olhou os dashboards.

Olhou os milhares de linhas COBOL.

Olhou Kafka.

Olhou MQ.

Olhou Kubernetes.

Olhou o Data Lake.

Depois perguntou:

— Por que vocês incendeiam uma floresta inteira?

A sala ficou silenciosa.

Um arquiteto respondeu:

— Para assar os porcos.

— Sim. Mas por que não fazemos uma pequena fogueira e colocamos o porco sobre ela?

Silêncio.

Alguém desligou o microfone.

Outro escreveu no chat privado:

“Quem convidou esse cara?”


🧪 A PROVA DE CONCEITO

João pegou um porco.

Algumas brasas.

Uma grelha.

Esperou.

O porco ficou perfeitamente assado.

Nenhuma floresta foi incendiada.

Nenhum batch foi executado.

Nenhuma mensagem MQ.

Nenhuma chamada REST.

Nenhum evento Kafka.

Nenhum Data Lake.

Nenhum SEV1.

Custo operacional:

quase zero.

O resultado foi apresentado à direção.

Por alguns segundos João acreditou que seria promovido.

Então começaram as perguntas.

— E o departamento de Engenharia de Incêndios?

— Não precisaria mais existir dessa forma.

— E nossos especialistas certificados em Propagação Florestal?

— Também não.

— E os 312 jobs?

— Poderíamos desativá-los.

— E nosso contrato de observabilidade?

— Grande parte deixaria de ser necessária.

— E o Data Lake?

— Continuaria existindo para outras coisas.

— E os vinte anos de dados históricos de incêndios?

— Seriam históricos.

— E nossa API?

— Provavelmente desnecessária para isso.

— E Kafka?

— Para assar um porco?

João começou a perceber o problema.

Ele não estava propondo apenas uma grelha.

Estava propondo destruir um ecossistema.


🏢 O SISTEMA NÃO ERA MAIS O SISTEMA

Durante cinquenta anos a empresa construíra organizações inteiras ao redor do método de incendiar florestas.

Existiam:

engenheiros de incêndio;

analistas de capacidade de incêndio;

DBAs especializados em tabelas de porcos;

operadores de batch;

especialistas em temperatura;

arquitetos de integração;

consultores;

auditores;

fornecedores;

contratos;

KPIs;

SLAs;

certificações;

procedimentos;

comitês;

diretorias.

O objetivo original havia sido:

assar porcos.

Mas lentamente o objetivo transformara-se em:

operar eficientemente o Sistema Corporativo de Incêndio de Florestas.

Essa diferença parecia pequena.

Não era.

Era gigantesca.


🧠 O DIRETOR EXPLICA A REALIDADE

O diretor chamou João.

— Sua ideia é interessante.

João sorriu.

— Obrigado.

— Mas você não compreende toda a complexidade.

João parou de sorrir.

O diretor mostrou o organograma.

Centenas de pessoas dependiam daquele processo.

Havia contratos plurianuais.

Depreciação de ativos.

Compliance.

Auditoria.

Treinamentos.

Orçamento.

Fornecedores.

Roadmaps.

Projetos estratégicos.

— Você está olhando apenas para o problema técnico — explicou o diretor.

João respondeu:

— Eu estou olhando para o porco.

O diretor respirou fundo.

— Exatamente. Esse é o problema.


🐷 O PORCO ESQUECIDO

Naquela noite João caminhou pelo Data Center.

Passou pelos enormes computadores.

Viu os painéis.

Os dashboards.

As luzes.

Os gráficos.

Tudo extraordinariamente sofisticado.

Então percebeu algo.

A organização sabia medir praticamente tudo.

Sabia quantas árvores queimavam.

Quanto combustível utilizava.

Quanto tempo levava.

Quantos processadores consumia.

Quantas mensagens trafegavam.

Quantos incidentes aconteciam.

Quanto custava cada floresta.

Mas havia uma pergunta que quase ninguém fazia:

“Ainda precisamos fazer isso dessa maneira?”

Essa pergunta não aparecia no SMF.

Não estava no RMF.

Não aparecia no Splunk.

Não existia no Grafana.

Não estava no Jira.

Não havia campo para ela no ServiceNow.

Porque nenhum sistema de observabilidade consegue detectar sozinho que o próprio processo observado deixou de fazer sentido.


☕ EPÍLOGO — O VERDADEIRO LEGADO

E aqui está a armadilha.

Legado não é COBOL.

Legado não é mainframe.

Legado não é VSAM.

Legado não é CICS.

Um programa COBOL com cinquenta anos que executa perfeitamente uma função necessária pode ser uma extraordinária peça de engenharia.

Enquanto isso, um microsserviço escrito ontem pode nascer legado se automatizar brilhantemente uma coisa que ninguém deveria continuar fazendo.

Modernização verdadeira não significa trocar:

COBOL → Java

ou:

MAINFRAME → CLOUD

ou:

BATCH → KAFKA

A pergunta anterior é muito mais importante:

POR QUE ESTE PROCESSO EXISTE?

Depois:

QUAL PROBLEMA ELE RESOLVE?

Depois:

AINDA PRECISAMOS RESOLVÊ-LO?

E somente então:

QUAL É A MELHOR TECNOLOGIA?

Porque você pode colocar uma API REST na frente do incêndio.

Pode publicar o incêndio no Kafka.

Pode executar o controle do incêndio em containers.

Pode armazenar os incêndios num Data Lake.

Pode usar IA para prever incêndios.

Pode criar dashboards espetaculares mostrando incêndios em tempo real.

E pode chamar tudo isso de transformação digital.

Mas...

se para conseguir um simples porco assado você ainda precisa incendiar uma floresta inteira,

talvez o problema nunca tenha sido o COBOL.

Talvez o problema seja que, em algum momento dos últimos cinquenta anos,

todo mundo começou a cuidar do SISTEMA e ninguém mais perguntou pelo porco.


🥚 EASTER EGG DO OPERADOR

Dizem que até hoje, exatamente às 03:17, existe um job desconhecido no scheduler:

JOB PORK999

Ninguém sabe quem o criou.

Ele executa apenas:

IF FLORESTA-EM-CHAMAS
    DISPLAY 'MAS POR QUE?'
END-IF.

O programa possui somente um comentário:

*> J.BOM-SENSO - NAO REMOVER.

Ninguém remove.

Afinal...

é legado.

Inspirado em fabula dos porcos Juício a La Escuela Cirigliano, Forcade Tilich Editorial Editorial Humanitas – Buenos Aires, 1974

sábado, 19 de setembro de 2026

🧭 MARCO POLO E A ROTA DA SEDA DIGITAL — QUANDO O COBOL DESCOBRIU O IBM CONFLUENT

 

Bellacosa Mainframe e o IBM Confluent

☕ Um Café no Bellacosa Mainframe

🧭 MARCO POLO E A ROTA DA SEDA DIGITAL — QUANDO O COBOL DESCOBRIU O IBM CONFLUENT

COBOL, CICS, Db2, IBM MQ, Apache Kafka, IBM Confluent, CDC, IBM Data Gate, Kafka Connect, Topics, Partitions, Offsets, Schema Registry, Flink, APIs, Cloud, IA — e o dia em que Marco Polo descobriu que o mainframe não precisava viajar para que seus dados atravessassem o mundo.

Sob a tutela de Marco Polo, mercador, explorador e contador de histórias de mundos que pareciam impossivelmente distantes — até alguém construir uma rota entre eles.



🎬 PRÓLOGO — NÃO PRECISAMOS MOVER O IMPÉRIO

Imagine um jovem programador COBOL diante de um terminal.

Na tela:

EXEC SQL
   UPDATE CONTA
      SET SALDO = SALDO - :WS-VALOR
    WHERE NUM_CONTA = :WS-CONTA
END-EXEC.

EXEC SQL
   COMMIT
END-EXEC.

Ele olha para aquilo e pensa:

— Pronto. Transferência concluída.

Marco Polo, sentado ao lado do terminal com um mapa enorme aberto sobre a mesa, pergunta:

— E quem ficou sabendo?

O programador responde:

— O Db2.

Marco continua:

— E o sistema antifraude?

Silêncio.

— O aplicativo mobile?

Mais silêncio.

— O Data Lake?

Silêncio novamente.

— O sistema de analytics?

O programador começa a desconfiar daquela conversa.

— E a inteligência artificial?

Finalmente ele responde:

— Marco... o que você quer exatamente?

Marco Polo aponta para o COMMIT.

— Quero construir uma rota daqui até lá.

E assim começa nossa viagem.

Porque IBM Confluent não é simplesmente "mais uma ferramenta de integração".

Para compreender sua importância dentro do universo mainframe precisamos entender uma mudança conceitual muito maior:

transformar dados armazenados em dados em movimento.



🗺️ CAPÍTULO 1 — O MAINFRAME NÃO É UMA ILHA

Durante décadas, empresas construíram seus sistemas centrais sobre tecnologias como:

COBOL
CICS
IMS
Db2
VSAM
JCL
IBM MQ

E esses sistemas continuam processando quantidades gigantescas de transações.

Banco.

Cartão.

Seguro.

Companhia aérea.

Varejo.

Governo.

Logística.

Imagine nosso IBM Z como uma grande cidade comercial.

Dentro dela existem mercados:

CICS

Armazéns:

Db2
VSAM
IMS DB

Mensageiros:

IBM MQ

Funcionários:

COBOL
PL/I
Java

Guardas:

RACF

E registros das atividades da cidade:

SMF

Tudo funciona.

O problema aparece quando outras cidades precisam saber rapidamente o que aconteceu.

Cloud.

Aplicações mobile.

Analytics.

Data Lakes.

Sistemas antifraude.

Machine Learning.

IA generativa.

Agentes de IA.

Marco Polo olha para o mapa e percebe:

O problema não é necessariamente reconstruir a cidade. Precisamos construir rotas comerciais.

Essa distinção é fundamental.

Modernização não significa obrigatoriamente:

MAINFRAME
    |
    v
MIGRAR TUDO
    |
    v
CLOUD

Pode significar:

             IBM Z
               |
        SYSTEM OF RECORD
               |
               v
          EVENT STREAM
               |
      +--------+--------+
      |        |        |
    Cloud      IA    Analytics

O COBOL continua processando a transação.

O dado viaja.



🐫 CAPÍTULO 2 — A ROTA DA SEDA DOS DADOS

A antiga Rota da Seda não transportava apenas seda.

Transportava:

  • mercadorias;

  • informações;

  • tecnologias;

  • culturas;

  • ideias;

  • conhecimento.

Confluent faz algo conceitualmente parecido com dados.

Imagine que uma transação ocorreu:

TRANSFERÊNCIA
Conta: 123456
Valor: R$ 850

No mundo tradicional podemos pensar:

COBOL
   |
   v
CICS
   |
   v
Db2
   |
   v
COMMIT

O banco de dados agora sabe que o saldo mudou.

Mas o restante da empresa talvez também precise saber.

Podemos representar esse acontecimento como um evento:

{
  "eventType": "TRANSFER_COMPLETED",
  "account": "123456",
  "amount": 850.00,
  "currency": "BRL"
}

Agora começa a viagem:

IBM Z
  |
  v
EVENTO
  |
  v
CONFLUENT / KAFKA
  |
  +------> Antifraude
  |
  +------> Mobile
  |
  +------> Analytics
  |
  +------> Data Lake
  |
  +------> IA

Uma transação ocorreu uma vez.

Mas vários sistemas podem ter interesse nela.

Essa é uma das ideias centrais do event streaming.



📜 CAPÍTULO 3 — ESTADO E ACONTECIMENTO NÃO SÃO A MESMA COISA

Considere:

CONTA: 123456
SALDO: R$ 4.150

Isso representa estado.

Agora observe:

09:00 PIX recebido       +1000
10:14 Compra             -200
12:07 Saque              -300
14:32 Depósito           +500
18:44 Transferência      -850

Isso representa uma sequência de acontecimentos.

Essa diferença parece pequena.

Mas arquiteturalmente é enorme.

O banco de dados responde muito bem:

Qual é o estado atual?

Um stream de eventos ajuda a responder:

O que aconteceu?

E principalmente:

O que está acontecendo?



📻 CAPÍTULO 4 — APACHE KAFKA: A ESTAÇÃO COMERCIAL DA ROTA

No coração do ecossistema Confluent encontramos o Apache Kafka.

Kafka é uma plataforma distribuída de event streaming.

Para começar, nosso jovem COBOLero precisa conhecer quatro palavras:

Producer
Topic
Consumer
Event

Imagine:

PRODUCER
   |
   | publica evento
   v
TOPIC
   |
   +------> CONSUMER A
   |
   +------> CONSUMER B
   |
   +------> CONSUMER C

Um producer produz eventos.

Um topic organiza eventos.

Consumers consomem eventos.

Parece simples.

E conceitualmente é.

O poder aparece quando colocamos milhões ou bilhões de acontecimentos nessa estrada.


🏷️ CAPÍTULO 5 — TOPIC: A PLACA DA ESTRADA

Imagine uma cidade com diferentes rotas:

payments
customers
accounts
card-transactions
fraud-alerts

No Kafka podemos ter topics semelhantes:

bank.payments
bank.accounts
bank.transactions
bank.fraud

Cada topic representa determinado fluxo de eventos.

Por exemplo:

bank.transactions

poderia receber:

Compra
Compra
PIX
Saque
Transferência
Compra
Depósito

Pense no topic como uma estrada especializada.

Marco Polo não coloca:

seda
cavalos
pimenta
ouro
documentos secretos

sem nenhuma organização na mesma carroça.

Boa arquitetura exige organização.


🧩 CAPÍTULO 6 — PARTITIONS: QUANDO UMA ESTRADA NÃO É SUFICIENTE

Agora imagine:

100 eventos por segundo

Tudo bem.

Mas o banco cresce.

Temos:

100.000 eventos por segundo

Uma única rota pode tornar-se insuficiente.

Kafka permite dividir um topic em partitions:

                 PAYMENTS
                    |
       +------------+------------+
       |            |            |
       v            v            v
 Partition 0    Partition 1    Partition 2

Isso possibilita paralelismo.

Diferentes consumers podem processar diferentes partitions simultaneamente.

O mainframeiro já conhece a ideia geral:

Dividir trabalho mantendo controle.

Nada de particularmente alienígena.

Só trocaram as placas da estrada.


🔑 CAPÍTULO 7 — KEY: NÃO MANDE A CARROÇA ERRADA

Existe um problema.

Imagine eventos da conta:

123456

Chegam:

DEPÓSITO
SAQUE
TRANSFERÊNCIA
COMPRA

A ordem pode ser importante.

Muito importante.

Em Kafka podemos utilizar uma key.

Por exemplo:

KEY = ACCOUNT_NUMBER

Eventos com determinada chave podem ser encaminhados consistentemente para a mesma partition.

Assim conseguimos preservar ordenação dentro daquela partition.

Para sistemas financeiros isso é crucial.

Porque:

CREDITAR 100
DEBITAR 100

pode representar uma história diferente de:

DEBITAR 100
CREDITAR 100

Ordem não é detalhe.

Ordem pode ser negócio.


🔢 CAPÍTULO 8 — OFFSET: O MARCO QUILOMÉTRICO DA ROTA

Cada evento dentro de uma partition possui uma posição.

Chamamos essa posição de:

OFFSET

Imagine:

Partition 0

offset 1001
offset 1002
offset 1003
offset 1004
offset 1005

Um consumidor pode registrar até onde chegou.

Algo como:

— Marco, já percorremos a rota até o marco 1004.

Então continuamos:

1005
1006
1007

Essa característica abre uma possibilidade extremamente poderosa:

REPLAY

Podemos voltar.

Dependendo da retenção disponível, um consumidor pode reler acontecimentos anteriores.

Imagine que criamos hoje um novo sistema analítico.

Ele não necessariamente precisa começar apenas nos eventos novos.

Podemos querer:

REPROCESSAR

eventos históricos disponíveis.

Para um mainframeiro acostumado com restart, checkpoint, logs e reprocessamento, isso começa a soar estranhamente familiar.


📬 CAPÍTULO 9 — "ENTÃO KAFKA É IBM MQ?"

Não.

Essa pergunta precisa aparecer cedo porque a confusão é natural.

IBM MQ

Uma boa simplificação mental:

Entregue esta mensagem.

PRODUTOR
   |
   v
QUEUE
   |
   v
CONSUMIDOR

Exemplo:

PROCESSAR PAGAMENTO 12345

Parece uma ordem.

Faça isso.


Kafka

Uma aproximação melhor:

Isto aconteceu.

PAGAMENTO 12345 FOI PROCESSADO

Então:

                    EVENTO
                       |
       +---------------+---------------+
       |               |               |
       v               v               v
     Fraud           Mobile         Analytics

Não significa que MQ não possa trabalhar com eventos nem que Kafka não possa participar de workflows.

A distinção é um modelo mental inicial, não uma fronteira absoluta.


🧙 CAPÍTULO 10 — CONFLUENT NÃO É APENAS KAFKA COM GRAVATA

Se Apache Kafka é o motor fundamental, Confluent constrói uma plataforma empresarial ao redor desse universo.

Podemos pensar pedagogicamente:

Apache Kafka
     |
     v
motor de event streaming

Enquanto:

Confluent
     |
     +--> Kafka
     +--> Connectors
     +--> Schema Registry
     +--> Governança
     +--> Segurança
     +--> Stream Processing
     +--> Flink
     +--> Operação

Isso importa em grandes empresas.

Porque instalar Kafka é uma coisa.

Operar streaming empresarial envolvendo milhares de aplicações, segurança, schemas, governança e consumidores é outra aventura completamente diferente.

Marco Polo poderia comprar um cavalo.

Mas organizar uma rota comercial entre continentes exigia muito mais que possuir cavalos.


🗄️ CAPÍTULO 11 — Db2 ENCONTRA A ROTA DA SEDA

Agora chegamos ao ponto especialmente interessante para IBM Z.

Imagine:

COBOL
  |
  v
CICS
  |
  v
Db2

O programa executa:

UPDATE ACCOUNT
SET BALANCE = BALANCE - 500
WHERE ACCOUNT_ID = 123;

Depois:

COMMIT

Db2 precisa registrar alterações para garantir propriedades transacionais e recuperação.

Existem logs.

E aqui surge uma ideia poderosa:

Em vez de consultar constantemente as tabelas procurando alterações, podemos capturar mudanças a partir dos logs.

Isso nos leva a:

CDC — CHANGE DATA CAPTURE


🔍 CAPÍTULO 12 — O VIGIA QUE NÃO FICA PERGUNTANDO

Imagine um sistema fazendo:

Mudou?

Mudou?

Mudou?

Mudou?

Mudou?

Mudou?

Ou pior:

SELECT *
FROM TRANSACTIONS
WHERE LAST_UPDATE > ...

continuamente.

Isso é polling.

Agora imagine outra estratégia:

INSERT aconteceu
UPDATE aconteceu
DELETE aconteceu

Capturamos essas mudanças.

Isso é a essência do Change Data Capture.


🚪 CAPÍTULO 13 — IBM DATA GATE FOR CONFLUENT

Aqui nossa rota chega diretamente ao IBM Z.

O IBM Data Gate for Confluent permite transformar alterações provenientes do Db2 for z/OS em streams consumíveis pelo ecossistema Confluent.

Conceitualmente:

COBOL
   |
   v
CICS
   |
   v
Db2 for z/OS
   |
 INSERT
 UPDATE
 DELETE
   |
 COMMIT
   |
   v
Db2 LOG
   |
   v
IBM Data Gate for Confluent
   |
   v
Kafka Connect
   |
   v
Confluent
   |
   v
Topics

Isso é interessantíssimo.

Porque talvez não seja necessário alterar centenas de programas COBOL apenas para fazer:

PUBLICAR NO KAFKA

A mudança do banco pode ser capturada.

O velho programa continua trabalhando.

A rota moderna aparece ao redor dele.


⚠️ CAPÍTULO 14 — CDC NÃO É EVENTO DE NEGÓCIO

Agora Marco Polo levanta o dedo.

— Cuidado.

Essa talvez seja uma das lições mais importantes de todo este artigo.

Considere:

CUSTOMER.STATUS

A -> B

CDC pode dizer:

Uma coluna mudou.

Mas o negócio talvez queira dizer:

CUSTOMER_ACCOUNT_SUSPENDED

com:

reason = FRAUD_INVESTIGATION

Isso é muito mais rico.

Portanto:

mudança de dado não é automaticamente evento de negócio.

Temos dois conceitos:

CDC
"algo mudou no dado"

e:

BUSINESS EVENT
"algo significativo aconteceu no negócio"

Confundir os dois pode transformar sua arquitetura Kafka num gigantesco banco de dados desmontado em JSON.


📖 CAPÍTULO 15 — SCHEMA REGISTRY: O COPYBOOK DO VIAJANTE

Agora chegamos a algo que fará qualquer COBOLero sorrir.

Temos:

01 PAYMENT-RECORD.
   05 ACCOUNT-NUMBER PIC X(10).
   05 AMOUNT         PIC S9(9)V99 COMP-3.
   05 CURRENCY       PIC X(03).

COPYBOOK define estrutura.

Agora imagine eventos.

Versão 1:

{
  "account": "123",
  "amount": 500
}

Um desenvolvedor decide melhorar:

{
  "accountNumber": "123",
  "amount": 500,
  "currency": "BRL"
}

Pronto.

Talvez quinze consumidores tenham quebrado.

Bem-vindo ao problema de evolução de schemas.

Confluent possui Schema Registry, permitindo administrar schemas e compatibilidade.

Pedagogicamente:

COPYBOOK
   |
estrutura compartilhada
   |
COBOL

versus:

Schema Registry
   |
estrutura dos eventos
   |
Producers / Consumers

Não são tecnologicamente equivalentes.

Mas o velho programador COBOL entende imediatamente por que aquilo existe.


🌊 CAPÍTULO 16 — FLINK: PROCESSANDO A ÁGUA ENQUANTO O RIO PASSA

Transportar eventos é apenas parte da aventura.

Talvez precisemos analisá-los enquanto passam.

Entre em cena:

Apache Flink.

Imagine:

CARD TRANSACTIONS
        |
        v
      FLINK
        |
        v
FRAUD ALERTS

Uma regra conceitual:

SE

5 compras
+
3 países
+
30 segundos

ENTÃO

GERAR ALERTA

Antigamente poderíamos imaginar:

23:00

//FRAUD JOB

O batch analisa o dia.

Streaming permite:

evento
evento
evento
evento
       |
       v
 análise imediata

Batch continua tendo seu lugar.

Mas agora temos outra ferramenta.


🔌 CAPÍTULO 17 — E O z/OS CONNECT?

Outra confusão comum.

API e streaming não são necessariamente concorrentes.

Imagine um cliente solicitando:

POST /transfer

Temos:

Mobile
   |
   v
API
   |
   v
z/OS Connect
   |
   v
CICS
   |
   v
COBOL

A pergunta é:

Faça uma transferência.

Depois a transação ocorre.

Agora:

COBOL
   |
   v
Db2
   |
   v
COMMIT
   |
   v
EVENTO
   |
   v
Confluent

A API entra.

O evento sai.

Nossa arquitetura fica:

                MOBILE
                   |
                   | POST /transfer
                   v
             z/OS Connect
                   |
                   v
                CICS
                   |
                   v
                COBOL
                   |
                   v
                  Db2
                   |
                 COMMIT
                   |
                   v
                EVENTO
                   |
                   v
              CONFLUENT
                   |
       +-----------+-----------+
       |           |           |
       v           v           v
     Fraud        CRM          IA

Agora temos uma arquitetura realmente interessante.


🏰 CAPÍTULO 18 — RACF NÃO PROTEGE O MUNDO INTEIRO

O jovem COBOLero pergunta:

— Mas temos RACF.

Marco Polo responde:

— Dentro das muralhas.

Quando o dado sai:

IBM Z
   |
   v
Confluent
   |
   v
Cloud

a superfície de segurança muda.

Precisamos considerar:

TLS
certificados
autenticação
autorização
ACLs
criptografia
segredos
PII
governança
retenção
auditoria
mascaramento

Uma regra importante:

A política de proteção precisa acompanhar o dado.

Não adianta possuir uma fortaleza maravilhosa se você coloca documentos secretos numa carroça sem escolta assim que eles atravessam o portão.


🤖 CAPÍTULO 19 — IA DESCOBRE O MAINFRAME EM TEMPO REAL

Aqui a história ganha outro nível.

Imagine IA alimentada assim:

23:00 extrair Db2
00:00 ETL
01:00 Data Lake
02:00 processamento

Ela conhece o passado.

Agora:

19:31:01 transação
19:31:02 evento
19:31:02 stream
19:31:03 processamento

Mudamos a pergunta.

Antes:

O que aconteceu ontem?

Agora:

O que está acontecendo agora?

Para antifraude, logística, recomendação, observabilidade e automação, essa diferença pode ser gigantesca.


📜 CAPÍTULO 20 — KAFKA É QUASE UM SMF DO NEGÓCIO?

Aqui temos nosso Easter Egg mainframeiro.

Quem trabalha com z/OS já convive com event streaming conceitualmente há muito tempo.

Pense no SMF:

JOB iniciou
JOB terminou
usuário acessou
CPU consumida
dataset aberto
transação executada

Depois:

SMF
 |
 +--> Segurança
 +--> Auditoria
 +--> Capacity
 +--> Performance
 +--> Billing

Agora observe:

Kafka
 |
 +--> Fraud
 +--> Analytics
 +--> Mobile
 +--> AI
 +--> Data Lake

Marco Polo olha para o velho programador mainframe.

O velho programador olha para Kafka.

Os dois ficam em silêncio.

Finalmente alguém diz:

— Então vocês reinventaram algumas coisas que nós já fazíamos?

😂

Não exatamente.

Mas existem ideias surpreendentemente familiares.

Easter Egg 03:17: se algum incidente acontecer exatamente nesse horário, procure primeiro o consumer lag antes de culpar o COBOL.


🧨 CAPÍTULO 21 — NÃO JOGUE 4.000 TABELAS NO KAFKA

Um arquiteto empolgado entra na sala:

— Temos quatro mil tabelas Db2!

Marco Polo sorri.

— Excelente.

— Vamos colocar todas no Kafka!

Marco fecha o mapa.

Não.

Essa decisão pode produzir:

4.000 tabelas
      |
      v
milhares de topics
      |
      v
schemas
PII
dados inúteis
custos
consumidores desconhecidos
dependências
governança impossível

Antes pergunte:

Qual dado?

Qual evento?

Quem consome?

Por quê?

Qual retenção?

Qual latência?

Qual chave?

Qual schema?

Qual SLA?

Contém PII?

Quem é o owner?

Replay é permitido?

Qual é a classificação de segurança?

Kafka não substitui arquitetura.

Confluent não substitui arquitetura.

Cloud não substitui arquitetura.

IA definitivamente não substitui arquitetura.


🛠️ CAPÍTULO 22 — PASSO A PASSO PARA O PROGRAMADOR COBOL

Se você está começando, estude nessa ordem.

Passo 1 — Entenda a transação

Comece pelo que conhece:

COBOL
CICS
Db2
COMMIT
ROLLBACK

Entenda Unit of Work.

Passo 2 — Entenda evento

Transforme:

UPDATE ACCOUNT

mentalmente em:

ACCOUNT_BALANCE_CHANGED

Depois pergunte se existe um evento de negócio ainda melhor:

PAYMENT_COMPLETED

Passo 3 — Aprenda Kafka básico

Domine:

Producer
Consumer
Topic
Partition
Key
Offset
Consumer Group
Retention
Replay

Passo 4 — Compare MQ

Pergunte:

Estou enviando uma ordem?

ou

Estou anunciando um acontecimento?

Isso já elimina muita confusão.

Passo 5 — Estude CDC

Aprenda:

INSERT
UPDATE
DELETE
LOG
CDC

Passo 6 — Estude Schema Registry

Pense como alguém que já conhece copybook.

Quem é dono do contrato?

Como evolui?

Quem quebra se mudar?

Passo 7 — Estude streaming

Depois avance para:

Flink
windowing
aggregation
filtering
stream processing

Passo 8 — Só então coloque IA

Não comece:

"QUERO IA!"

Comece:

Qual evento?
Qual dado?
Qual qualidade?
Qual latência?
Qual governança?

Depois coloque IA.


☕ CAPÍTULO 23 — A CAFETERIA DE MARCO POLO

Vamos fechar com uma analogia.

Imagine nossa cafeteria.

Db2

É o livro-caixa.

Pergunta:

Qual é o saldo?


API

Cliente pergunta ao balcão:

Quanto custa um espresso?


IBM MQ

Garçom leva uma ordem:

Prepare dois cafés.


Kafka

O sino toca:

DOIS CAFÉS FORAM VENDIDOS.

Então:

estoque escuta
financeiro escuta
fidelidade escuta
analytics escuta
IA escuta

Confluent

É toda a infraestrutura comercial que administra essas rotas.


Data Gate

Observa mudanças relevantes vindas do Db2 e ajuda a colocá-las na rota.


Schema Registry

É o formulário comercial dizendo exatamente como deve ser descrita uma carga.


Flink

É o mercador que analisa as mercadorias enquanto as caravanas ainda estão passando.


🧭 EPÍLOGO — O COBOL NÃO PRECISA FAZER A VIAGEM

Depois de meses viajando pela Rota da Seda Digital, nosso jovem programador retorna ao mesmo terminal.

Na tela ainda existe:

EXEC SQL
   UPDATE CONTA
      SET SALDO = SALDO - :WS-VALOR
    WHERE NUM_CONTA = :WS-CONTA
END-EXEC.

EXEC SQL
   COMMIT
END-EXEC.

Ele olha para Marco Polo.

— Então não precisamos necessariamente reescrever isso?

Marco sorri.

— Finalmente você entendeu a viagem.

O programa COBOL pode continuar fazendo aquilo para o qual foi criado.

Processar uma transação crítica.

Com segurança.

Consistência.

Performance.

Décadas de regras de negócio.

Ao redor dele construímos rotas:

                         IBM Z
                           |
                     CICS / IMS
                           |
                         COBOL
                           |
                          Db2
                           |
                        COMMIT
                           |
                           v
                     Db2 LOG / CDC
                           |
                           v
                     DATA GATE
                           |
                           v
                       CONFLUENT
                           |
                         KAFKA
                           |
          +----------------+----------------+
          |                |                |
          v                v                v
        CLOUD             AI            ANALYTICS
          |                |                |
          +----------------+----------------+
                           |
                           v
                    NOVOS SERVIÇOS

E talvez essa seja uma das ideias mais importantes para um programador COBOL iniciante compreender sobre modernização.

Modernizar não significa necessariamente substituir.

Às vezes significa conectar.

Às vezes significa expor.

Às vezes significa desacoplar.

Às vezes significa transformar uma alteração em evento.

O IBM Z continua sendo o System of Record.

O Db2 continua preservando o estado confiável.

CICS continua processando transações.

COBOL continua executando regras de negócio.

MQ continua transportando mensagens onde mensageria confiável é necessária.

z/OS Connect abre a porta das APIs.

Kafka cria rios de eventos.

Confluent organiza essas novas rotas.

Data Gate ajuda dados do Db2 for z/OS a entrar nelas.

Flink processa acontecimentos enquanto eles passam.

Cloud, analytics e IA tornam-se consumidores dessa informação.

E assim descobrimos algo que Marco Polo provavelmente entenderia melhor que muitos arquitetos modernos:

Você não precisa mover uma cidade inteira para estabelecer comércio com o outro lado do mundo.

Você precisa construir uma boa rota.

No século XIII ela atravessava desertos, montanhas, impérios e oceanos.

No século XXI ela pode começar humildemente assim:

EXEC SQL
   COMMIT
END-EXEC

e terminar milhares de quilômetros — ou alguns milissegundos — depois:

COBOL
  ↓
CICS
  ↓
Db2
  ↓
COMMIT
  ↓
CDC
  ↓
IBM Data Gate
  ↓
Kafka Connect
  ↓
IBM Confluent
  ↓
Topic
  ↓
Partition
  ↓
Consumer
  ↓
Flink
  ↓
Cloud
  ↓
IA

Marco Polo fecha o mapa.

O programador COBOL olha novamente para o terminal.

E percebe que aquele programa de quarenta anos não estava necessariamente preso ao passado.

Talvez apenas estivesse esperando alguém construir uma estrada.

☕ Bellacosa Mainframe

Porque algumas das tecnologias mais interessantes do futuro começam com alguém perguntando o que realmente aconteceu depois do COMMIT.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...