☕ 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 IBM MQ. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta IBM MQ. Mostrar todas as mensagens

segunda-feira, 27 de julho de 2026

AWS vs Mainframe: O Grande Dicionário Bilíngue da Computação Corporativa

 

Bellacosa Mainframe compara o aws com o mainframe

☕ Um Café no Bellacosa Mainframe

AWS vs Mainframe: O Grande Dicionário Bilíngue da Computação Corporativa

Quando um Programador COBOL Descobre que a Nuvem Não Inventou Tudo... Apenas Deu Novos Nomes às Velhas Ideias

Existe uma frase muito conhecida entre os profissionais de tecnologia:

"Toda tecnologia nova parece revolucionária... até você descobrir que o mainframe já fazia algo parecido há décadas."

Naturalmente, essa frase é um exagero. A computação em nuvem trouxe inúmeras inovações reais: elasticidade praticamente infinita, cobrança sob demanda, infraestrutura global distribuída, APIs padronizadas e uma velocidade de provisionamento que seria impensável nos anos 1970.

Por outro lado...

Quem trabalhou muitos anos em IBM Z percebe rapidamente algo curioso.

Boa parte dos conceitos fundamentais da Cloud Computing já existiam, apenas recebiam outros nomes.

É justamente isso que o infográfico procura mostrar.

Não se trata de afirmar que AWS = Mainframe.

Muito menos que um substitui o outro.

A proposta é muito mais inteligente:

Traduzir conceitos.

Da mesma forma que um brasileiro aprende inglês associando "house" com "casa", um programador COBOL aprende AWS muito mais rapidamente quando pensa:

"EC2... isso lembra uma LPAR."

É exatamente essa mudança mental que acelera o aprendizado.

Vamos aprofundar essa comparação.


Antes de tudo...

Existe um erro extremamente comum.

Muitos profissionais perguntam:

"Qual é o equivalente do AWS Lambda no Mainframe?"

Na verdade essa pergunta está errada.

O correto seria perguntar:

"Qual tecnologia do Mainframe resolve um problema semelhante?"

Porque tecnologias diferentes podem resolver o mesmo problema de maneiras completamente distintas.

É exatamente isso que veremos.


EC2 × LPAR

AWS

EC2 fornece máquinas virtuais sob demanda.

Você cria.

Liga.

Desliga.

Apaga.

Escala.

Tudo em minutos.


Mainframe

A comparação natural é a LPAR (Logical Partition).

Mas aqui existe uma enorme diferença filosófica.

Uma instância EC2 normalmente é um servidor virtual.

Uma LPAR é praticamente um computador completo.

Dentro dela existe:

  • z/OS

  • JES

  • RACF

  • CICS

  • Db2

  • MQ

  • milhares de usuários

Ou seja...

Uma única LPAR frequentemente faz o trabalho de centenas de servidores Linux.

Por isso muitos profissionais dizem:

"Comparar uma EC2 com uma LPAR é como comparar um apartamento com um condomínio inteiro."


Curiosidade

O conceito de particionamento lógico apareceu comercialmente décadas antes da virtualização popularizada pelo VMware.

A IBM fazia isso quando a maioria dos servidores ainda era física.


S3 × VSAM / DASD

Esta comparação merece cuidado.

S3 não é um disco.

É um armazenamento de objetos.

VSAM não é armazenamento de objetos.

É um método de acesso.

Então por que a comparação?

Porque ambos representam onde os dados vivem.


S3

Armazena objetos.

  • fotos

  • backups

  • vídeos

  • PDFs

  • logs

Escala praticamente infinita.


Mainframe

No IBM Z os dados normalmente ficam em:

  • DASD

  • VSAM

  • Sequential datasets

  • GDGs

  • PDS/PDSE

O conceito é diferente.

Enquanto S3 trabalha com objetos identificados por chaves, o mainframe trabalha com datasets catalogados e métodos de acesso especializados.

Um VSAM KSDS, por exemplo, comporta-se muito mais como um banco de dados indexado do que como um bucket S3.


Melhor analogia

Talvez fosse mais correto dizer:

S3 ≈ Conjunto de datasets altamente duráveis.

Não existe equivalente perfeito.


RDS × Db2 for z/OS

Aqui a aproximação é muito boa.

AWS oferece banco relacional gerenciado.

Db2 oferece banco relacional corporativo.

Mas termina aí.


O que muda?

No AWS:

Você administra menos infraestrutura.

No Mainframe:

Você administra muito mais parâmetros.

Em compensação...

Obtém níveis absurdos de disponibilidade.

Db2 z/OS foi construído para:

  • bancos

  • cartões

  • bolsas

  • governos

  • seguradoras

Milhões de transações por segundo.

Décadas de evolução.

Consistência extrema.


Easter Egg

Quando alguém diz:

"Meu banco usa RDS."

O programador de mainframe responde:

"Interessante... o meu banco inteiro usa Db2."


Lambda × CICS

Essa comparação é conceitual.

Lambda executa código quando um evento ocorre.

CICS executa transações quando uma requisição chega.

Ambos respondem a eventos.

Mas de maneiras completamente diferentes.


Lambda

Sem servidor visível.

Escala automaticamente.

Cada chamada inicia uma execução.


CICS

Servidor transacional residente.

As tarefas reutilizam recursos.

Baixíssima latência.

Controle rigoroso.

Extrema confiabilidade.


Uma transação CICS pode durar poucos milissegundos.

E atender milhares de usuários simultaneamente.

Há bancos onde o cliente insere a senha no caixa eletrônico...

E em menos de um décimo de segundo:

  • RACF valida

  • CICS executa

  • Db2 consulta

  • MQ envia mensagens

  • resposta retorna

Tudo isso antes do usuário piscar.


API Gateway × CICS Web Services

Nos últimos anos o CICS tornou-se um verdadeiro servidor de APIs.

Hoje é possível expor programas COBOL como:

  • REST

  • SOAP

  • JSON

Sem reescrever décadas de código.

A ideia é semelhante ao API Gateway:

publicar serviços de forma segura.

A diferença é que no CICS o backend muitas vezes continua sendo um programa escrito em 1989.

E funcionando perfeitamente.


CloudWatch × RMF / SMF

Talvez uma das melhores comparações.

CloudWatch monitora.

RMF mede.

SMF registra praticamente tudo.


No mainframe existem registros para:

CPU.

I/O.

Memória.

Logons.

Jobs.

CICS.

Db2.

MQ.

Segurança.

Tudo vira SMF.

Depois essas informações alimentam:

  • relatórios

  • capacity planning

  • billing interno

  • auditoria

  • performance

É praticamente uma caixa-preta de avião.


VPC × VTAM / TCP-IP

VPC cria uma rede privada lógica.

No mainframe temos:

  • TCP/IP

  • Enterprise Extender

  • SNA

  • VTAM (historicamente)

São tecnologias diferentes.

Mas ambas organizam comunicações seguras entre aplicações.

Hoje, o TCP/IP é predominante no z/OS, enquanto o VTAM permanece como parte importante da arquitetura SNA e do gerenciamento de sessões legadas.


IAM × RACF

Esta talvez seja a comparação mais intuitiva.

IAM controla identidades.

RACF controla identidades.

Mas RACF faz isso desde os anos 1970.


No RACF encontramos:

  • usuários

  • grupos

  • perfis

  • datasets

  • transações

  • comandos

  • permissões

Tudo centralizado.

Em ambientes corporativos enormes, RACF continua sendo um dos sistemas de segurança mais robustos do mercado.


CloudFront

Aqui o infográfico coloca:

Sem equivalente.

Concordo parcialmente.

CloudFront é uma CDN.

Mainframe nunca precisou distribuir imagens para milhões de navegadores.

Mas existe um conceito parecido.

CICS, z/OS Connect e balanceadores corporativos podem distribuir carga entre regiões, embora isso não seja uma CDN. Portanto, realmente não há um equivalente direto.


DynamoDB

Também não existe equivalente perfeito.

O mainframe tradicional trabalha principalmente com:

  • Db2

  • IMS DB

  • VSAM

Entretanto...

IMS Hierarchical Database possui algumas características que lembram bancos NoSQL modernos.

Não são iguais.

Mas resolvem certos problemas semelhantes.


SQS × IBM MQ

Esta comparação é excelente.

Ambos trabalham com filas.

Mensagens.

Processamento assíncrono.

Desacoplamento.

A principal diferença está no foco.

IBM MQ nasceu para ambientes corporativos críticos.

SQS nasceu para aplicações distribuídas na nuvem.

Ambos resolvem brilhantemente problemas de integração, mas IBM MQ oferece recursos avançados de transação, persistência e integração com sistemas legados que o tornam um pilar do processamento empresarial.


SNS × WTO / Console Messages

Aqui talvez seja a comparação mais discutível.

SNS distribui notificações para diversos assinantes.

Já WTO (Write To Operator) envia mensagens ao console do operador do z/OS.

Embora ambos "notifiquem", cumprem papéis muito diferentes.

Uma analogia funcional mais próxima seria:

  • SNS ↔ combinação de IBM MQ + Event Notification + automação (como IBM Z System Automation ou NetView), dependendo do cenário.

WTO é muito mais voltado para operação do sistema do que para publicação de eventos para consumidores.


O que ficou faltando?

O universo AWS é enorme. Diversos serviços modernos também encontram paralelos conceituais no ecossistema IBM Z:

AWSMainframe
EBSVolumes DASD
EFSzFS / HFS
Elastic Load BalancerSysplex Distributor
Auto ScalingWLM + Capacity on Demand
Secrets ManagerRACF Key Rings + ICSF
KMSICSF + Hardware Crypto Express
CloudTrailSMF + RACF Auditing
Systems Managerz/OSMF
ECS/EKSzCX (z/OS Container Extensions)
EventBridgeIBM MQ + CICS START + automação
Step FunctionsJCL + Scheduler (TWS/IWS, CA 7, Control-M)
GlueDFSORT, SyncSort, DataStage e ferramentas ETL
AthenaDb2 Analytics, SQL Federation e consultas distribuídas
RedshiftDb2 Analytics Accelerator (IDAA)
CognitoRACF + provedores de identidade (LDAP, SAF, z/OS Connect)

A Filosofia por Trás da Comparação

A maior lição do infográfico não é decorar equivalências.

É perceber que os problemas fundamentais da computação permanecem os mesmos:

  • executar aplicações;

  • armazenar dados;

  • proteger acessos;

  • integrar sistemas;

  • monitorar ambientes;

  • processar eventos;

  • escalar capacidade.

O que muda é a forma como cada arquitetura resolve esses desafios.

O IBM Z foi concebido para oferecer estabilidade, consistência transacional e disponibilidade extrema em um ambiente centralizado. A AWS foi projetada para privilegiar elasticidade, automação, distribuição geográfica e provisionamento sob demanda em uma infraestrutura de nuvem.

Essas filosofias não são concorrentes em todos os casos — são frequentemente complementares. Hoje, é comum encontrar bancos, seguradoras e governos executando seus sistemas críticos em IBM Z enquanto utilizam AWS para APIs, analytics, inteligência artificial, aplicações móveis e serviços digitais.


Conclusão: O Melhor Profissional Fala Dois "Idiomas"

No início da carreira, muitos especialistas em mainframe enxergavam a nuvem como uma ameaça. Da mesma forma, muitos profissionais de cloud acreditavam que o mainframe era apenas uma tecnologia ultrapassada.

Com o tempo, o mercado mostrou uma realidade bem diferente.

Os ambientes corporativos mais sofisticados são híbridos.

O cartão de crédito pode ser autorizado por um programa COBOL executando em CICS e Db2 no IBM Z, enquanto o aplicativo móvel utiliza APIs hospedadas na AWS, com autenticação moderna, monitoramento em nuvem e microsserviços.

Em vez de escolher entre "mainframe ou cloud", as organizações escolhem mainframe e cloud.

Para o profissional de tecnologia, isso significa uma oportunidade extraordinária: dominar os dois mundos. Quem entende como traduzir conceitos entre AWS e IBM Z consegue atuar como uma ponte entre equipes, acelerar projetos de modernização e preservar décadas de conhecimento corporativo enquanto incorpora as práticas mais recentes da computação em nuvem.

No fim das contas, aprender AWS não exige esquecer o mainframe. Pelo contrário: para quem já conhece IBM Z, muitas ideias da nuvem deixam de parecer completamente novas e passam a ser apenas uma nova linguagem para resolver problemas que a computação empresarial enfrenta — e resolve — há mais de meio século.

segunda-feira, 6 de julho de 2026

IA Generativa Muito Além do ChatGPT - Parte II

Bellacosa Mainfram apresenta ia generativa

☕ Um Café no Bellacosa Mainframe

IA Generativa Muito Além do ChatGPT

O Que Todo Programador COBOL Padawan Precisa Saber Sobre RAG, MCP, watsonx, IBM Z, CICS, Db2, APIs e Como a Inteligência Artificial Está Transformando os Sistemas Mais Críticos do Mundo (Parte 2)

"A tecnologia muda. Os princípios permanecem. Empresas não sobrevivem porque adotam modismos, mas porque conseguem evoluir preservando aquilo que já funciona."


Quando a IA Encontra o Mundo Real

Na primeira parte deste artigo vimos que a Inteligência Artificial não veio substituir o Mainframe.

Na verdade, ela depende dele.

Agora vamos responder uma pergunta ainda mais importante:

Como isso acontece dentro de uma grande instituição financeira?

Esqueça por um momento os chatbots públicos.

Imagine um banco que processa:

  • 150 milhões de transações por dia;

  • milhares de PIX por segundo;

  • milhões de cartões;

  • investimentos;

  • empréstimos;

  • seguros;

  • câmbio;

  • previdência.

Todo esse universo continua sendo coordenado por aplicações executando no IBM Z.

A IA entra como uma camada de inteligência.

Não como substituição.


Caso 1 — Atendimento Inteligente

Imagine que um cliente escreve:

"Meu cartão foi recusado. O que aconteceu?"

Sem IA:

  • abertura de chamado;

  • consulta manual;

  • operador verifica sistemas;

  • resposta alguns minutos depois.

Com IA integrada ao Mainframe:

Cliente

↓

Assistente IA

↓

RAG

↓

API REST

↓

CICS

↓

Programa COBOL

↓

Db2

↓

Regras de Negócio

↓

Resposta Personalizada

Resposta:

"Sua compra foi recusada porque ultrapassou o limite diário de segurança definido para transações internacionais. Você pode aumentar esse limite diretamente pelo aplicativo."

Nenhuma informação foi inventada.

Tudo veio do sistema corporativo.


Caso 2 — Explicando Programas COBOL

Imagine um programa com 25.000 linhas.

O desenvolvedor recém-chegado pergunta:

"Como esse programa calcula juros?"

Sem IA:

Dias analisando código.

Com IA:

Programa COBOL

↓

Parser

↓

Embedding

↓

Base Vetorial

↓

LLM

↓

Resumo Técnico

Resposta:

O cálculo de juros ocorre nos parágrafos CALC-JUROS e APLICA-TAXA. A taxa depende do tipo de contrato, perfil do cliente e índice econômico armazenado na tabela FIN_RATE.

O profissional continua responsável pela validação.

Mas economiza horas.


Caso 3 — Documentação Automática

Uma das maiores dores em sistemas legados é documentação desatualizada.

Hoje podemos construir pipelines que façam:

Git

↓

Programa COBOL

↓

Parser

↓

IA

↓

Markdown

↓

Wiki

↓

Confluence

Resultado:

Toda alteração gera documentação automaticamente.


Caso 4 — Geração de Casos de Teste

Imagine este trecho COBOL:

IF SALDO < VALOR-SAQUE
    MOVE "N" TO AUTORIZADO
ELSE
    MOVE "S" TO AUTORIZADO
END-IF

Uma IA pode sugerir automaticamente:

Caso 1

Saldo = 500

Saque = 300

Resultado esperado:

AUTORIZADO = S

Caso 2

Saldo = 300

Saque = 500

Resultado esperado:

AUTORIZADO = N

Caso 3

Saldo = 500

Saque = 500

Resultado esperado:

AUTORIZADO = S

Isso acelera significativamente testes unitários.


Agentes de IA

O próximo passo da evolução são os agentes.

Enquanto um chatbot apenas responde perguntas, um agente executa tarefas.

Imagine:

"Abra um chamado porque houve aumento de ABEND S0C7."

O agente poderá:

  • consultar o SDSF;

  • analisar logs;

  • pesquisar incidentes semelhantes;

  • abrir ticket;

  • notificar equipes;

  • sugerir solução.

Tudo automaticamente.


Arquitetura de um Agente Mainframe

                    Usuário

                       │

                       ▼

               Agente Inteligente

                       │

          ┌────────────┼────────────┐

          ▼            ▼            ▼

      MCP Tool     RAG Engine   Prompt Engine

          │            │            │

          └────────────┼────────────┘

                       ▼

             IBM API Connect

                       │

          ┌────────────┼────────────┐

          ▼            ▼            ▼

      z/OS Connect    MQ      REST APIs

          │

          ▼

      CICS

          │

          ▼

      COBOL

          │

          ▼

     Db2 / VSAM / IMS

Observe que o agente não substitui aplicações.

Ele coordena.


Observabilidade Inteligente

Ferramentas como:

  • OpenTelemetry

  • Grafana

  • Prometheus

  • Instana

  • IBM Z APM Connect

produzem milhões de métricas.

Uma IA consegue resumir tudo.

Exemplo:

Ao invés de mostrar:

CPU = 83%

I/O = 65%

Storage = 72%

Buffer Pool = 94%

Response Time = 1,8s

A IA apresenta:

Detectamos degradação iniciada às 14h23 causada por aumento nas leituras aleatórias do Db2. Existe forte correlação com o deploy realizado às 14h18.

Isso muda completamente a produtividade.


Segurança com IA

Fraudes evoluem diariamente.

A IA ajuda identificando padrões.

Exemplo:

Cliente normalmente utiliza:

São Paulo

09:00 às 20:00

Compras abaixo de R$ 500.

De repente:

Compra de US$ 8.000

Outro continente

03:17 da manhã.

O modelo identifica anomalias antes mesmo da autorização.


IA Não Pode Alucinar

Esse é um ponto crítico.

Em sistemas financeiros:

Não existe "quase certo".

Imagine responder:

Seu saldo é R$ 15.000

quando na verdade são R$ 1.500.

Por isso arquiteturas corporativas utilizam:

  • RAG

  • MCP

  • APIs oficiais

  • Catálogo de Dados

  • Governança

  • Logs

  • Auditoria

Toda resposta precisa ser rastreável.


Engenharia de Prompt para Mainframe

Prompt ruim:

Explique esse programa.

Prompt profissional:

Você é um arquiteto IBM Z.

Analise este programa COBOL.

Explique:

• regras de negócio

• dependências

• tabelas Db2

• transações CICS

• arquivos VSAM

• riscos

• complexidade

• sugestões de testes

Não invente informações.
Indique apenas aquilo identificado no código.

A qualidade muda completamente.


DevOps + IA

Imagine um pipeline.

Git

↓

Pull Request

↓

SonarQube

↓

COBOL Check

↓

IA

↓

Resumo

↓

Code Review

↓

Deploy

Antes mesmo do revisor abrir o código, a IA já produziu:

  • resumo;

  • riscos;

  • impacto;

  • módulos afetados;

  • documentação.


O Papel do Desenvolvedor

Existe medo.

"IA vai substituir programadores."

A história mostra outra coisa.

Quando surgiram:

  • compiladores;

  • IDEs;

  • Git;

  • Java;

  • frameworks;

  • Cloud;

  • DevOps.

Disseram exatamente a mesma coisa.

O profissional mudou.

Não desapareceu.


O Novo Desenvolvedor Mainframe

Nos próximos anos veremos um perfil diferente.

Além de COBOL, ele entenderá:

✓ APIs

✓ JSON

✓ Python

✓ Engenharia de Prompt

✓ RAG

✓ MCP

✓ IA Generativa

✓ DevOps

✓ Observabilidade

✓ Segurança

✓ Arquitetura

Esse profissional será extremamente valorizado.


O Que Ainda Não Será Substituído

A IA pode escrever código.

Mas ela não conhece:

  • estratégia do banco;

  • legislação;

  • decisões executivas;

  • riscos jurídicos;

  • compliance;

  • auditoria;

  • cultura organizacional.

Quem conhece isso?

As pessoas.


Um Possível Futuro

Imagine daqui a alguns anos.

Você chega ao trabalho.

Pergunta:

"Existe algum problema crítico hoje?"

Resposta:

Foram detectadas três degradações.

Corrigi automaticamente duas.

A terceira envolve alteração de regra de negócio.

Já preparei documentação.

Seguem possíveis soluções.

Isso não é ficção.

É exatamente para onde estamos caminhando.


Arquitetura Completa de IA Corporativa para IBM Z

                    ┌──────────────────────────────────────────────┐
                    │              Usuário Final                   │
                    └──────────────────┬───────────────────────────┘
                                       │
                                       ▼
                        Web │ Mobile │ Chatbot │ Teams │ Slack
                                       │
                                       ▼
                  ┌────────────────────────────────────────┐
                  │        Gateway de APIs / WAF           │
                  └────────────────┬───────────────────────┘
                                   │
                    ┌──────────────┼──────────────┐
                    ▼              ▼              ▼
               Autenticação     Auditoria     Rate Limit
                                   │
                                   ▼
                      ┌────────────────────────────┐
                      │      Modelo Generativo     │
                      │        (watsonx.ai)        │
                      └────────────┬───────────────┘
                                   │
                  ┌────────────────┼────────────────┐
                  ▼                ▼                ▼
              Prompt           RAG Engine       MCP Server
             Orchestrator        Vetores        Ferramentas
                  │                │                │
                  └────────────────┼────────────────┘
                                   ▼
                    ┌──────────────────────────────────┐
                    │ APIs Corporativas / z/OS Connect │
                    └────────────────┬─────────────────┘
                                     │
              ┌──────────────────────┼──────────────────────┐
              ▼                      ▼                      ▼
           CICS                 IBM MQ                Batch
              │                      │                      │
              └──────────────┬───────┴──────────────────────┘
                             ▼
                     Aplicações COBOL
                             │
        ┌────────────────────┼────────────────────┐
        ▼                    ▼                    ▼
      Db2                  VSAM                 IMS
                             │
                             ▼
                    Fonte Oficial da Verdade

Considerações Finais

Durante décadas, ouvimos previsões sobre o fim do Mainframe. Entretanto, a realidade mostrou algo diferente: os sistemas que sustentam bancos, seguradoras, governos e grandes empresas continuam evoluindo porque concentram o ativo mais valioso de qualquer organização — seus dados e suas regras de negócio.

A Inteligência Artificial Generativa amplia esse cenário ao adicionar novas capacidades de interpretação, automação e interação. Tecnologias como RAG, MCP, watsonx, APIs, z/OS Connect e modelos privados permitem que aplicações modernas dialoguem com décadas de conhecimento implementado em COBOL, CICS e Db2, sem abrir mão de segurança, governança ou desempenho.

Não estamos testemunhando a substituição do Mainframe, mas o surgimento de uma nova geração de arquiteturas corporativas em que IA e IBM Z trabalham lado a lado. Para os profissionais da área, isso representa uma oportunidade única: dominar tanto os fundamentos dos sistemas críticos quanto as novas ferramentas de Inteligência Artificial.

O futuro pertence aos profissionais capazes de conectar esses dois mundos. Afinal, a inovação mais duradoura não nasce da ruptura, mas da integração inteligente entre o legado que funciona e as tecnologias que apontam para o amanhã.


☕ Continua a conversa no Bellacosa Mainframe

https://eljefemidnightlunch.blogspot.com/2026/07/ia-generativa-muito-alem-do-chatgpt.html




sexta-feira, 19 de junho de 2026

IBM MQ sem Mistérios: da Primeira Fila ao Salto Quântico da Integração Corporativa

 

Bellacosa Mainframe uma visao do ibm mq 10

☕ Um Café no Bellacosa Mainframe

IBM MQ sem Mistérios: da Primeira Fila ao Salto Quântico da Integração Corporativa

O guia do Programador COBOL Padawan para compreender mensagens, filas, Queue Managers, canais, segurança, clusters, containers e a evolução do MQSeries ao IBM MQ 10.0

Existe uma cena clássica em praticamente todo ambiente corporativo: de um lado, temos um programa COBOL executando tranquilamente no z/OS; do outro, uma aplicação Java, um aplicativo bancário, uma API escrita em Python, um sistema Linux, um serviço na nuvem ou algum microsserviço perdido dentro de um cluster Kubernetes.

Todos precisam conversar.

O problema é que eles não falam necessariamente a mesma língua, não estão ligados no mesmo horário, não possuem a mesma velocidade e, pior ainda, podem ficar indisponíveis justamente no momento em que a mensagem precisa ser entregue.

É aí que entra o IBM MQ.

O MQ funciona como uma espécie de Central de Comunicações da Frota Estelar. A USS Enterprise não precisa pousar em cada planeta para entregar uma ordem. Ela transmite a mensagem por uma infraestrutura preparada para transportar, proteger, armazenar e encaminhar a comunicação.

No mundo corporativo, o IBM MQ desempenha uma missão semelhante.

Ele permite que aplicações diferentes troquem informações com segurança, confiabilidade e independência. Um programa envia uma mensagem; o MQ armazena essa mensagem; outro programa a recebe quando estiver pronto.

A ideia parece simples.

Mas é justamente essa simplicidade que sustenta bancos, seguradoras, companhias aéreas, governos, varejistas, indústrias, sistemas de pagamento e inúmeras operações críticas ao redor do planeta.

Prepare sua caneca de café, ajuste o uniforme da Frota e ligue o terminal 3270. Nossa missão será atravessar mais de três décadas de evolução do IBM MQ, começando no antigo MQSeries e chegando ao IBM MQ 10.0.


Capítulo I — Antes do MQ: quando as aplicações precisavam esperar umas pelas outras

Imagine que um programa chamado PGMPED01 precise enviar um pedido para outro programa chamado PGMFAT01.

Sem mensageria, o primeiro programa poderia chamar diretamente o segundo:

PGMPED01 ───────────────► PGMFAT01
           chamada direta

Essa arquitetura pode funcionar enquanto tudo estiver perfeitamente disponível.

Mas o que acontece quando:

  • o segundo programa está parado;

  • a rede caiu;

  • o servidor remoto está em manutenção;

  • o processamento demora;

  • há milhares de solicitações simultâneas;

  • uma das aplicações é atualizada;

  • o sistema consumidor precisa ser transferido para outra plataforma?

Na comunicação direta, o produtor e o consumidor ficam fortemente acoplados.

O programa produtor precisa conhecer:

  • o endereço do consumidor;

  • o protocolo utilizado;

  • o formato esperado;

  • o tempo de resposta;

  • a condição de disponibilidade.

É como se o capitão de uma nave precisasse localizar pessoalmente cada tripulante para entregar uma ordem. Se o oficial estivesse dormindo, em missão externa ou preso no Holodeck, toda a operação ficaria bloqueada.

O MQ introduz um intermediário:

PGMPED01 ───► FILA.PEDIDOS ───► PGMFAT01

O produtor não entrega diretamente ao consumidor. Ele coloca a mensagem em uma fila.

O consumidor não precisa estar funcionando naquele instante. Quando estiver disponível, poderá retirar e processar a mensagem.

Esse é o coração da comunicação assíncrona.


Capítulo II — O que significa MQ?

MQ tornou-se associado a Message Queueing, ou enfileiramento de mensagens.

O produto começou como MQSeries em 1993, depois foi renomeado WebSphere MQ em 2002 e passou a se chamar IBM MQ em 2014. A solução cresceu de uma plataforma de filas para um conjunto completo de recursos de mensageria corporativa, disponível em z/OS, sistemas distribuídos, appliances, nuvem e containers. (Wikipedia)

Uma mensagem é uma unidade de informação enviada por uma aplicação.

Ela pode conter:

  • uma transação bancária;

  • um pedido de compra;

  • os dados de um cliente;

  • uma solicitação de pagamento;

  • uma notificação;

  • um evento de estoque;

  • um documento JSON;

  • um registro COBOL;

  • uma instrução para outro sistema;

  • até mesmo dados binários.

A fila é o local lógico onde essa mensagem aguarda processamento.

Pense em uma estação ferroviária.

Os passageiros são as mensagens.

A plataforma é a fila.

O trem é o canal de transporte.

A estação central é o Queue Manager.

Os fiscais são as regras de segurança.

O sistema de sinalização representa os mecanismos de confirmação, controle e recuperação.

No universo da Frota Estelar, podemos fazer outra analogia:

Mensagem        = ordem da missão
Fila            = caixa de comunicações
Queue Manager   = computador central da nave
Canal           = frequência de transmissão
Aplicação       = tripulante remetente ou destinatário

Capítulo III — A criatura mais importante: o Queue Manager

O Queue Manager, ou gerenciador de filas, é o coração operacional do IBM MQ.

Ele administra:

  • filas;

  • mensagens;

  • conexões;

  • canais;

  • segurança;

  • recuperação;

  • logs;

  • persistência;

  • transações;

  • entrega entre ambientes.

Um Queue Manager pode ser imaginado como uma agência central dos Correios. Ele conhece as caixas postais, controla o armazenamento e encaminha as mensagens para outros locais.

Exemplo conceitual:

+---------------------------------------+
|         QUEUE MANAGER QMZOS01         |
|                                       |
|  FILA.PEDIDOS                         |
|  FILA.PAGAMENTOS                      |
|  FILA.RESPOSTAS                       |
|  FILA.ERROS                           |
|                                       |
|  Canais, logs, segurança e controle   |
+---------------------------------------+

Um programa pode abrir uma fila e colocar uma mensagem usando uma chamada MQPUT.

Outro programa pode abrir a mesma fila e obter a mensagem usando MQGET.

Fluxo básico:

Programa produtor
      |
      | MQPUT
      v
FILA.PEDIDOS
      |
      | MQGET
      v
Programa consumidor

No mundo COBOL, essas operações podem ser efetuadas por meio da interface MQI, a Message Queue Interface.

Uma sequência lógica simplificada seria:

MQCONN  → conectar ao Queue Manager
MQOPEN  → abrir uma fila
MQPUT   → colocar uma mensagem
MQCLOSE → fechar a fila
MQDISC  → desconectar

Para consumir:

MQCONN  → conectar
MQOPEN  → abrir
MQGET   → obter a mensagem
MQCLOSE → fechar
MQDISC  → desconectar

Esse ciclo é quase um ritual de embarque:

  1. entrar na nave;

  2. abrir o canal;

  3. transmitir ou receber;

  4. fechar o canal;

  5. desembarcar.


Capítulo IV — 1993: nasce o MQSeries

A década de 1990 foi um período de enorme fragmentação tecnológica.

Empresas possuíam:

  • mainframes;

  • servidores Unix;

  • PCs;

  • bancos de dados diferentes;

  • sistemas departamentais;

  • aplicações cliente-servidor;

  • redes heterogêneas.

A comunicação entre essas plataformas era complicada.

O MQSeries surgiu para fornecer mensageria confiável entre sistemas distribuídos.

A grande inovação não era apenas transportar dados. Era permitir que a aplicação produtora continuasse trabalhando sem precisar esperar que a aplicação consumidora terminasse.

Veja a diferença.

Comunicação síncrona

Aplicação A chama Aplicação B
Aplicação A fica esperando
Aplicação B processa
Aplicação B responde
Aplicação A continua

Comunicação assíncrona

Aplicação A envia mensagem
Aplicação A continua trabalhando
Aplicação B processa quando puder

Esse desacoplamento oferece quatro liberdades importantes:

Liberdade de tempo

Produtor e consumidor não precisam estar ativos simultaneamente.

Liberdade de plataforma

Um pode estar no z/OS; o outro, no Linux.

Liberdade de velocidade

O produtor pode enviar rapidamente, enquanto o consumidor processa no próprio ritmo.

Liberdade de evolução

Uma aplicação pode ser modificada sem exigir alteração imediata na outra, desde que o contrato da mensagem seja preservado.

Essa filosofia permanece válida mesmo depois de três décadas.


Capítulo V — Mensagens persistentes: o diário de bordo que não pode desaparecer

Nem toda mensagem possui a mesma importância.

Uma notificação de temperatura pode eventualmente ser descartada.

Uma transferência bancária, não.

Por isso, o MQ diferencia mensagens persistentes e não persistentes.

Mensagem não persistente

É normalmente utilizada quando desempenho é mais importante e uma eventual perda pode ser tolerada.

Exemplos:

  • telemetria temporária;

  • atualização visual;

  • evento sem valor transacional;

  • informação que pode ser recriada.

Mensagem persistente

É protegida pelos mecanismos de log e recuperação do Queue Manager.

Exemplos:

  • pagamento;

  • transferência;

  • pedido;

  • alteração de conta;

  • movimentação contábil;

  • reserva de passagem.

Se o sistema falhar, a mensagem persistente pode ser recuperada.

É o equivalente ao diário de bordo da Enterprise. Mesmo que a nave sofra uma pane, as informações essenciais da missão não podem simplesmente evaporar no espaço.


Capítulo VI — Commit e Backout: quando o MQ entra na transação

O MQ também pode participar de unidades de trabalho.

Imagine que um programa COBOL:

  1. leia uma mensagem da fila;

  2. atualize uma tabela Db2;

  3. grave um registro;

  4. confirme a transação.

Se tudo funcionar:

COMMIT

A mensagem é definitivamente removida da fila e a atualização do banco é confirmada.

Se ocorrer um erro:

ROLLBACK ou BACKOUT

A atualização é desfeita e a mensagem pode retornar à fila para nova tentativa.

Esse comportamento é fundamental para evitar o pior cenário de integração:

Mensagem removida
+
Banco não atualizado
=
Transação perdida

Quando MQ e Db2 estão coordenados corretamente, o processamento pode obedecer ao princípio:

Ou tudo acontece, ou nada acontece.

É a famosa atomicidade transacional.

Nenhum oficial da Frota gostaria de registrar “torpedo disparado” sem que o torpedo tivesse realmente sido lançado — ou lançar o torpedo sem atualizar o diário da batalha.


Capítulo VII — Canais: as rotas interestelares do MQ

Quando dois Queue Managers precisam conversar, normalmente utilizam canais.

Exemplo:

QMZOS01 ───────────────► QMLNX01
        canal emissor

Em uma configuração distribuída clássica, podemos encontrar:

  • Sender Channel;

  • Receiver Channel;

  • Server Connection Channel;

  • Client Connection Channel;

  • Cluster Sender;

  • Cluster Receiver.

Um Sender Channel envia mensagens.

Um Receiver Channel recebe.

Um Server Connection Channel permite que uma aplicação cliente se conecte remotamente a um Queue Manager.

Para o Programador COBOL iniciante, a distinção essencial é:

Aplicação local
    usa o Queue Manager próximo

Queue Manager
    usa canais para conversar com outro Queue Manager

A aplicação não precisa conhecer todos os detalhes da rota.

Ela coloca a mensagem em uma fila. O MQ resolve o transporte segundo a configuração existente.

É como pedir ao computador da nave:

“Entregue esta mensagem à Base Estelar 12.”

O tripulante não precisa calcular cada dobra espacial, cada repetidor subespacial ou cada salto intermediário.


Capítulo VIII — Filas locais, remotas e de transmissão

Uma fila local armazena mensagens dentro do Queue Manager.

FILA.LOCAL.PEDIDOS

Uma definição de fila remota representa um destino existente em outro Queue Manager.

FILA.REMOTA.FATURAMENTO

Uma fila de transmissão armazena temporariamente mensagens destinadas a outro Queue Manager.

Fluxo simplificado:

Aplicação
   |
   v
Definição remota
   |
   v
Fila de transmissão
   |
   v
Sender Channel
   |
   v
Receiver Channel
   |
   v
Fila local no destino

Você pode imaginar a fila remota como o endereço da Base Estelar, enquanto a fila de transmissão funciona como o compartimento de carga onde as mensagens aguardam a próxima nave de transporte.


Capítulo IX — Final dos anos 1990: agrupamento e clustering

À medida que o MQ crescia, surgiram necessidades mais sofisticadas.

Uma delas era transportar conjuntos de mensagens relacionadas.

Imagine um pedido composto por:

  • cabeçalho;

  • cliente;

  • dez itens;

  • pagamento;

  • entrega.

Essas partes podem ser enviadas como mensagens separadas, mas precisam ser processadas como um grupo lógico.

Outro avanço importante foi o clustering.

Sem cluster:

Aplicação
   |
   v
Queue Manager único

Se esse Queue Manager sofrer uma interrupção, o caminho pode ficar indisponível.

Com um cluster:

                  ┌──► QM01
Aplicação ────────┼──► QM02
                  └──► QM03

O cluster oferece mecanismos para distribuir mensagens entre instâncias de filas disponíveis em diferentes Queue Managers.

Mas atenção, Padawan: cluster não é sinônimo automático de alta disponibilidade completa.

Ele ajuda na conectividade e distribuição de carga, mas o projeto ainda precisa considerar:

  • disponibilidade do Queue Manager;

  • armazenamento;

  • aplicações consumidoras;

  • rede;

  • recuperação de desastre;

  • persistência;

  • afinidade de mensagens;

  • monitoramento.

Essa é uma armadilha frequente.

Cluster não é magia Jedi. É arquitetura.


Capítulo X — 2002: a era WebSphere MQ

Em 2002, o produto passou a integrar a família WebSphere e recebeu o nome WebSphere MQ. A mudança refletia o período em que arquiteturas Java, J2EE, serviços Web e integração corporativa ganhavam enorme importância. (Wikipedia)

Era a era da SOA: Service-Oriented Architecture.

A empresa deixava de pensar apenas em programas isolados e passava a organizar funcionalidades como serviços.

Exemplo:

Serviço de Cliente
        |
        v
       MQ
        |
        v
Serviço de Crédito
        |
        v
       MQ
        |
        v
Serviço de Faturamento

O MQ tornou-se um elemento essencial para conectar serviços sem criar dependências rígidas.

Muito antes de expressões como “microsserviços” e “cloud native” dominarem as conferências, o MQ já praticava princípios que permanecem modernos:

  • desacoplamento;

  • comunicação assíncrona;

  • contratos de mensagem;

  • tolerância a falhas;

  • processamento distribuído;

  • segurança;

  • rastreabilidade.

Curiosidade: vários conceitos vendidos hoje como novidades absolutas já frequentavam os corredores do mainframe quando muito desenvolvedor moderno ainda usava conexão discada.


Capítulo XI — Publish/Subscribe: uma mensagem para muitos ouvintes

No modelo tradicional de fila, uma mensagem é normalmente consumida por um consumidor.

Produtor ───► Fila ───► Consumidor

No modelo Publish/Subscribe, o produtor publica uma informação em um tópico.

Vários assinantes podem recebê-la.

                         ┌──► Assinante A
Publicador ──► Tópico ───┼──► Assinante B
                         └──► Assinante C

Exemplo: uma transação de venda foi concluída.

O evento pode interessar a:

  • estoque;

  • faturamento;

  • logística;

  • análise de fraude;

  • programa de fidelidade;

  • data lake;

  • sistema de notificações.

Em vez de o sistema de vendas chamar seis aplicações diferentes, ele publica um evento:

VENDA.CONCLUIDA

Cada assinante recebe e processa a informação segundo sua finalidade.

Essa arquitetura reduz acoplamento e facilita a inclusão de novos consumidores.

A ponte da Enterprise anuncia:

“Alerta vermelho!”

Segurança, Engenharia, Enfermaria e Comando recebem o mesmo evento, mas cada departamento toma uma ação diferente.

Isso é Publish/Subscribe explicado pela Frota Estelar.


Capítulo XII — WebSphere MQ 7 e a abertura para JMS, MQTT e alta disponibilidade

A evolução do MQ acompanhou Java, dispositivos conectados e arquiteturas distribuídas.

JMS facilitou a integração com aplicações Java.

MQTT tornou-se especialmente importante em cenários de dispositivos leves e telemetria.

Imagine:

Sensor industrial
       |
       | MQTT
       v
Gateway ou infraestrutura de mensageria
       |
       v
IBM MQ
       |
       v
Sistema corporativo

Um sensor não precisa executar um cliente pesado. Ele pode publicar dados usando um protocolo enxuto, enquanto a infraestrutura corporativa recebe, converte, distribui e processa as informações.

O MQ começou como um mensageiro entre sistemas corporativos e evoluiu para participar de ecossistemas com:

  • dispositivos;

  • aplicações móveis;

  • sistemas web;

  • Java;

  • integração empresarial;

  • serviços externos.


Capítulo XIII — Segurança: não basta entregar, é preciso proteger

Em mensageria corporativa, temos pelo menos cinco perguntas fundamentais:

  1. Quem está se conectando?

  2. A pessoa ou aplicação está autenticada?

  3. Ela tem autorização para acessar a fila?

  4. A comunicação está criptografada?

  5. A mensagem pode ser auditada?

A segurança pode envolver:

  • TLS;

  • certificados;

  • autenticação;

  • autorização;

  • CHLAUTH;

  • CONNAUTH;

  • RACF no z/OS;

  • proteção de filas;

  • identidades de usuários;

  • políticas de Advanced Message Security;

  • registros e monitoramento.

No z/OS, o RACF pode controlar o acesso aos recursos do MQ.

Exemplo conceitual:

Usuário APPPED01
pode PUT em FILA.PEDIDOS

Usuário APPFAT01
pode GET em FILA.PEDIDOS

Usuário DESCONHECIDO
não pode acessar

Uma boa prática é seguir o princípio do menor privilégio.

O produtor não precisa necessariamente retirar mensagens.

O consumidor não precisa necessariamente colocar mensagens.

O operador não precisa ler o conteúdo comercial.

O auditor não precisa alterar configurações.

Cada tripulante deve possuir apenas os acessos necessários para a própria missão.

Dar autoridade total a todas as aplicações seria como distribuir códigos de autodestruição da Enterprise para qualquer cadete recém-chegado.


Capítulo XIV — Advanced Message Security e Managed File Transfer

O Advanced Message Security permite aplicar proteção à própria mensagem.

Isso é diferente de proteger somente o canal.

TLS protege a comunicação durante o transporte:

Aplicação A ===== canal protegido ===== MQ

A proteção no nível da mensagem pode manter o conteúdo protegido mesmo enquanto ele passa por intermediários.

É a diferença entre:

  • transportar uma carta dentro de um túnel seguro;

  • colocar a carta em um envelope que somente o destinatário pode abrir.

O Managed File Transfer utiliza a infraestrutura e os controles de MQ para transferências de arquivos gerenciadas.

Isso pode oferecer:

  • auditoria;

  • rastreabilidade;

  • automação;

  • segurança;

  • confirmação;

  • integração com processos;

  • tratamento de falhas.

Em muitas empresas, mover um arquivo não significa simplesmente executar FTP. É preciso saber:

  • quem enviou;

  • quando enviou;

  • qual era o tamanho;

  • se chegou;

  • se foi processado;

  • se houve erro;

  • se ocorreu nova tentativa.

O MFT transforma a transferência em uma operação governada.


Capítulo XV — 2014: nasce oficialmente o nome IBM MQ

Em 2014, o produto deixou a identidade WebSphere e passou a chamar-se IBM MQ. (Wikipedia)

A mudança simbolizou sua independência e amplitude.

O MQ já não era apenas uma peça de um conjunto de ferramentas web. Era uma plataforma de mensageria com identidade própria, presente em múltiplos sistemas operacionais e arquiteturas.

Nessa fase ganharam destaque recursos como:

  • interfaces administrativas modernas;

  • console web;

  • conectividade aprimorada;

  • appliances;

  • maior integração operacional.

O IBM MQ Appliance ofereceu uma forma integrada de executar mensageria em equipamento dedicado, reduzindo parte do trabalho de montagem da pilha de infraestrutura.

Para algumas organizações, isso significava receber uma espécie de “nave pronta para voar”, em vez de montar motor, casco, computador, escudos e sistema de dobra separadamente.


Capítulo XVI — LTS e Continuous Delivery

A partir da família 9, compreender os modelos de entrega tornou-se essencial.

LTS — Long Term Support

Destinado a organizações que priorizam estabilidade e permanência em uma linha de manutenção por um período prolongado.

A IBM define o LTS como o nível recomendado para ambientes que exigem máxima estabilidade. Atualizações LTS recebem correções de defeitos e segurança, enquanto novas capacidades chegam por novas bases LTS ou são incorporadas a partir da evolução do fluxo CD. (IBM)

CD — Continuous Delivery

Entrega funcionalidades com maior frequência.

Exemplos de numeração:

9.4.0 = base LTS
9.4.1 = CD
9.4.2 = CD
9.4.3 = CD

A IBM explica que versões LTS utilizam normalmente o nível de modificação zero, enquanto as entregas CD utilizam níveis subsequentes. (IBM)

A escolha depende da missão.

Um banco com processos rígidos pode preferir LTS.

Um laboratório, uma equipe de inovação ou um ambiente que necessita rapidamente de determinada capacidade pode adotar CD.

Não existe “melhor” universal.

Existe o modelo adequado ao risco, governança e velocidade da organização.


Capítulo XVII — IBM MQ 9.1, 9.2, 9.3 e 9.4: o MQ entra definitivamente na era híbrida

A família 9 consolidou o MQ dentro do novo universo tecnológico:

  • containers;

  • Docker;

  • Kubernetes;

  • OpenShift;

  • REST;

  • JSON;

  • autenticação moderna;

  • observabilidade;

  • automação;

  • integração híbrida.

O IBM MQ 9.4 LTS tornou-se disponível em junho de 2024. Entre suas capacidades estavam melhorias administrativas, ampliação de escalabilidade no channel initiator do z/OS, aprimoramentos nos registros SMF, evolução do console e mensageria remota por REST API. (IBM)

Observe o que isso representa.

Um produto nascido em 1993 consegue operar em um ambiente com:

COBOL + CICS + Db2 + z/OS
              |
              v
             MQ
              |
              v
Java + Spring Boot + OpenShift + Kubernetes

Não foi necessário jogar fora o mainframe.

Não foi necessário reescrever todos os programas COBOL.

Foi criada uma ponte.

Essa é uma das maiores lições do MQ: modernização não significa necessariamente substituição.

Muitas vezes, modernizar significa expor, integrar, proteger, automatizar e observar melhor aquilo que já funciona.


Capítulo XVIII — 2026: IBM MQ 10.0 entra em cena

O IBM MQ 10.0 LTS foi anunciado em abril de 2026 e disponibilizado em junho de 2026, sucedendo o IBM MQ 9.4.0 LTS e a última entrega CD da linha 9.4, a versão 9.4.5. (IBM)

A versão reforça uma mensagem importante:

O MQ não está sendo mantido apenas por compatibilidade. Ele continua evoluindo para enfrentar novos problemas corporativos.

Entre os avanços documentados para o MQ 10.0 aparecem recursos ligados a:

  • conectividade simplificada com a nuvem;

  • melhorias de console;

  • recuperação de site alternativo;

  • monitoramento de Native HA;

  • tracing integrado com OpenTelemetry;

  • aprimoramentos administrativos;

  • segurança;

  • containers;

  • resiliência. (IBM)

No campo da segurança, o MQ 10.0 também trouxe suporte a mecanismos de troca de chaves quantum-safe baseados em FIPS 203 e ML-KEM para canais TLS 1.3 em plataformas compatíveis. A finalidade é ajudar a proteger comunicações contra o cenário conhecido como “coletar agora e descriptografar depois”. (IBM)

Aqui está o grande salto histórico:

1993: transportar mensagens entre aplicações

2026: transportar mensagens com integração híbrida,
observabilidade, automação, segurança moderna,
containers e preparação criptográfica para o futuro

A missão original permaneceu.

A nave ganhou novos motores.


Capítulo XIX — Exemplo completo: um pagamento processado por COBOL

Considere um aplicativo de pagamento.

O cliente realiza uma transferência.

Etapa 1 — Aplicativo envia a solicitação

{
  "contaOrigem": "12345",
  "contaDestino": "98765",
  "valor": 150.00
}

Etapa 2 — API valida o formato

A API verifica token, campos obrigatórios e limites básicos.

Etapa 3 — API publica no MQ

FILA.PAGAMENTOS.ENTRADA

Etapa 4 — Programa COBOL consome

Um programa CICS ou batch executa MQGET.

Etapa 5 — Regra de negócio é aplicada

O programa verifica:

  • saldo;

  • situação da conta;

  • limite;

  • bloqueios;

  • antifraude;

  • dados cadastrais.

Etapa 6 — Db2 é atualizado

UPDATE CONTA
SET SALDO = SALDO - :VALOR
WHERE NUM_CONTA = :ORIGEM

Etapa 7 — Transação é confirmada

Se tudo funcionar:

COMMIT

Etapa 8 — Resposta é publicada

FILA.PAGAMENTOS.RESPOSTA

Etapa 9 — Aplicativo recebe a confirmação

{
  "status": "APROVADO",
  "codigo": "TX458902"
}

Agora suponha que o programa COBOL esteja indisponível durante três minutos.

A API não precisa perder o pagamento.

A mensagem pode permanecer na fila até que o consumidor retorne.

Esse é o verdadeiro poder do desacoplamento temporal.


Capítulo XX — Dead-letter queue: o cemitério que precisa ser investigado

Quando uma mensagem não consegue chegar ao destino, ela pode ser encaminhada para a Dead-Letter Queue.

Mas cuidado com o nome.

Ela não deve ser tratada como um lixão.

Uma mensagem na DLQ representa uma anomalia:

  • destino inexistente;

  • fila cheia;

  • erro de roteamento;

  • configuração incorreta;

  • autorização;

  • canal indisponível;

  • definição remota errada.

Uma DLQ ignorada é como uma cápsula de fuga à deriva. Pode parecer apenas um ponto luminoso no radar, mas talvez contenha informações vitais.

Boas práticas:

  • monitore a DLQ;

  • investigue o motivo;

  • corrija a causa;

  • reencaminhe quando apropriado;

  • mantenha trilha de auditoria;

  • evite simplesmente apagar.


Capítulo XXI — Backout Queue: a mensagem Klingon indestrutível

Imagine que uma mensagem defeituosa seja lida por um programa.

O programa falha.

A transação executa rollback.

A mensagem retorna à fila.

O programa lê novamente.

Falha novamente.

Isso pode criar um loop:

GET
erro
ROLLBACK
GET
erro
ROLLBACK
GET
erro
ROLLBACK

Para evitar esse ciclo, é possível utilizar mecanismos de backout.

Após determinada quantidade de tentativas, a mensagem pode ser movida para uma fila de exceção:

FILA.PAGAMENTOS.BACKOUT

Essa mensagem é frequentemente chamada de poison message.

Ela não é literalmente venenosa, mas provoca falha repetitiva no consumidor.

Dica de campo: sempre trate o contador de backout e projete uma estratégia para mensagens problemáticas. Não deixe o programa lutar eternamente contra o mesmo Klingon em um loop temporal.


Capítulo XXII — Passo a passo para o COBOL Padawan começar a estudar

Passo 1 — Domine os conceitos

Antes de instalar qualquer coisa, compreenda:

  • mensagem;

  • fila;

  • Queue Manager;

  • canal;

  • persistência;

  • commit;

  • rollback;

  • produtor;

  • consumidor;

  • cluster;

  • Publish/Subscribe.

Passo 2 — Desenhe um fluxo simples

PRODUTOR → FILA → CONSUMIDOR

Depois acrescente:

PRODUTOR → QM1 → CANAL → QM2 → CONSUMIDOR

Passo 3 — Conheça as chamadas MQI

Estude inicialmente:

MQCONN
MQOPEN
MQPUT
MQGET
MQCLOSE
MQDISC

Depois avance para:

MQBEGIN
MQCMIT
MQBACK
MQINQ
MQSET

Passo 4 — Aprenda MQSC

MQSC é a linguagem administrativa usada para definir e controlar objetos.

Exemplos conceituais:

DEFINE QLOCAL(FILA.TESTE)
DISPLAY QLOCAL(FILA.TESTE)
ALTER QLOCAL(FILA.TESTE)
DELETE QLOCAL(FILA.TESTE)

Passo 5 — Crie um laboratório produtor/consumidor

O produtor envia:

USS ENTERPRISE NCC-1701

O consumidor lê e exibe.

Esse será nosso primeiro Easter egg.

Depois envie:

RESISTANCE IS FUTILE

Caso a mensagem pare na Dead-Letter Queue, saberemos que os Borg assumiram o canal.

Passo 6 — Teste persistência

Envie uma mensagem persistente, interrompa o Queue Manager de forma controlada e confirme a recuperação após a reinicialização.

Passo 7 — Teste transação

Faça o consumidor:

  1. obter a mensagem;

  2. provocar um erro;

  3. executar rollback;

  4. verificar o retorno da mensagem.

Passo 8 — Estude segurança

Crie usuários com permissões distintas.

Teste quem pode:

  • conectar;

  • colocar;

  • retirar;

  • consultar;

  • administrar.

Passo 9 — Adicione um segundo Queue Manager

Configure uma rota entre dois ambientes.

Observe:

  • fila remota;

  • transmission queue;

  • sender channel;

  • receiver channel.

Passo 10 — Monitore

Acompanhe:

  • profundidade da fila;

  • mensagens antigas;

  • canais parados;

  • erros;

  • DLQ;

  • desempenho;

  • logs;

  • consumo;

  • tentativas de autenticação.


Capítulo XXIII — Dez dicas do engenheiro-chefe

1. Não use uma fila como banco de dados

Fila é mecanismo de transporte e desacoplamento, não repositório permanente de consulta histórica.

2. Defina contratos de mensagem

Documente:

  • formato;

  • campos;

  • versão;

  • codificação;

  • tamanho;

  • obrigatoriedade;

  • tratamento de erro.

3. Pense em idempotência

O consumidor deve, quando possível, tolerar o recebimento repetido de uma mensagem sem executar duas vezes um efeito indevido.

4. Use identificadores de correlação

Eles ajudam a relacionar uma resposta à solicitação original.

5. Monitore idade, não apenas quantidade

Uma fila com dez mensagens antigas pode ser mais grave que uma fila com mil mensagens processadas rapidamente.

6. Planeje mensagens inválidas

Toda arquitetura precisa responder:

O que faremos quando o conteúdo não puder ser processado?

7. Proteja os canais

Não exponha canais administrativos ou permissões excessivas.

8. Evite mensagens gigantes sem necessidade

Mensagens muito grandes aumentam consumo de rede, armazenamento, log e tempo de processamento.

9. Conheça a semântica da entrega

“Coloquei na fila” não significa necessariamente “o negócio foi concluído”.

Significa que a responsabilidade foi transferida para outra etapa.

10. Documente o caminho completo

Não basta saber o nome da fila.

Registre:

  • produtor;

  • consumidor;

  • Queue Manager;

  • canais;

  • regras de segurança;

  • formato;

  • retentativas;

  • DLQ;

  • backout;

  • alertas;

  • responsáveis.


Capítulo XXIV — MQ versus chamadas REST

REST e MQ não são inimigos.

REST funciona muito bem quando:

  • a resposta imediata é necessária;

  • o consumidor está disponível;

  • o fluxo é simples;

  • a interação é síncrona.

MQ funciona muito bem quando:

  • o consumidor pode estar indisponível;

  • a operação precisa ser armazenada;

  • há grande volume;

  • os sistemas possuem velocidades diferentes;

  • retentativa e recuperação são necessárias;

  • o processamento pode ser assíncrono.

Uma arquitetura real pode usar ambos:

Aplicativo
   |
   | REST
   v
API
   |
   | MQ
   v
COBOL/CICS

REST recebe a solicitação.

MQ protege e desacopla o processamento.

COBOL executa a regra crítica.

É uma aliança entre planetas, não uma guerra entre tecnologias.


Capítulo XXV — O maior ensinamento da linha do tempo

O IBM MQ atravessou:

  • cliente-servidor;

  • Internet;

  • Java;

  • SOA;

  • Web Services;

  • integração empresarial;

  • cloud;

  • containers;

  • Kubernetes;

  • OpenShift;

  • observabilidade;

  • segurança pós-quântica.

E, apesar de toda essa evolução, sua ideia central continua reconhecível:

Uma aplicação produz uma mensagem.
Outra aplicação consome.
O MQ garante a travessia.

Essa permanência ensina algo precioso ao Programador COBOL Padawan.

Uma tecnologia não permanece relevante porque recusa mudanças.

Ela permanece relevante porque preserva seus princípios fundamentais enquanto adapta sua implementação ao novo mundo.

O COBOL também sobreviveu seguindo lógica semelhante.

O z/OS também.

O Db2 também.

O CICS também.

Eles não ficaram congelados em uma fotografia de 1970. Evoluíram, ganharam APIs, segurança moderna, integração, automação e novos modelos operacionais.

O IBM MQ tornou-se uma ponte entre gerações.

De um lado:

COBOL
CICS
IMS
Db2
z/OS

Do outro:

Java
Python
REST
JSON
Containers
Kubernetes
Cloud
IA

No centro:

IBM MQ

Conclusão — A mensagem precisa chegar

No final de nossa missão, percebemos que IBM MQ não é apenas uma ferramenta para criar filas.

Ele é uma filosofia de arquitetura.

Uma filosofia baseada em:

  • desacoplamento;

  • resiliência;

  • segurança;

  • persistência;

  • transações;

  • integração;

  • confiabilidade.

Para o Programador COBOL iniciante, aprender MQ é descobrir como o mainframe conversa com o restante da galáxia digital.

Seu programa COBOL não precisa compreender cada detalhe de uma aplicação móvel, de um container ou de uma API em nuvem.

Ele precisa conhecer o contrato da mensagem.

Precisa saber onde recebê-la.

Precisa processá-la corretamente.

Precisa confirmar ou desfazer a transação.

O restante fica sob responsabilidade da infraestrutura de mensageria.

Talvez essa seja a verdadeira genialidade do MQ: permitir que sistemas de épocas, linguagens e plataformas diferentes cooperem sem exigir que todos se transformem na mesma coisa.

Na Frota Estelar, vulcanos, humanos, andorianos, klingons e inúmeras espécies trabalham lado a lado. Cada uma mantém sua identidade, mas utiliza protocolos comuns para colaborar.

No ambiente corporativo, COBOL, Java, Python, Linux, z/OS, containers e APIs fazem exatamente isso.

E o IBM MQ permanece no meio da ponte de comando, silencioso, transportando milhões de mensagens enquanto quase ninguém percebe.

Até o dia em que ele para.

Nesse instante, todos descobrem que o mensageiro discreto era, na verdade, um dos sistemas mais importantes da nave.

Vida longa e próspera às filas.

E lembre-se do código secreto escondido no log da missão:

MSGID: NCC1701
CORRELID: BELLACOSA
REASON: 00000000
STATUS: MESSAGE DELIVERED

A transmissão foi concluída. ☕🖖

segunda-feira, 15 de junho de 2026

☕🚀 Os Maiores Bancos Digitais do Brasil Nasceram na Nuvem, Mas o Dinheiro Ainda Passa pelo Mainframe

 

Bellacosa Mainframe e uma visão do sistema bancario brasileiro

☕🚀 Os Maiores Bancos Digitais do Brasil Nasceram na Nuvem, Mas o Dinheiro Ainda Passa pelo Mainframe

Existe uma frase que se tornou quase um mantra no mercado financeiro moderno:

"O futuro está na nuvem."

E é verdade.

Nubank, Inter, Mercado Pago, PicPay, PagBank e dezenas de fintechs brasileiras nasceram em arquiteturas modernas, utilizando APIs, microsserviços, containers, Kubernetes, inteligência artificial e infraestrutura cloud.

Mas existe uma realidade pouco comentada fora dos bastidores da tecnologia bancária.

Uma realidade que surpreende estudantes, jornalistas, executivos recém-chegados ao setor financeiro e até muitos profissionais de TI.

O dinheiro que movimenta bilhões de reais diariamente no Brasil continua passando por sistemas centrais executados em plataformas que nasceram décadas antes da internet comercial.

Sim.

Enquanto o cliente faz um PIX em um smartphone equipado com processadores capazes de executar bilhões de operações por segundo, uma parte significativa da infraestrutura que garante que aquele dinheiro chegue ao destino continua rodando em ambientes IBM Z, CICS, DB2, MQ e COBOL.

E isso não acontece por nostalgia.

Acontece porque funciona.

Muito bem.


O mito do "banco 100% digital"

Quando um banco digital aparece na televisão, geralmente a propaganda mostra:

  • aplicativo moderno;

  • cartão colorido;

  • conta aberta em minutos;

  • chatbot inteligente;

  • investimentos com poucos cliques.

Tudo parece novo.

Tudo parece revolucionário.

Tudo parece distante do mundo dos grandes datacenters.

Mas existe uma diferença importante entre:

interface digital
e
infraestrutura financeira.

O cliente enxerga o aplicativo.

O sistema financeiro enxerga liquidação.

E são coisas completamente diferentes.

Um banco pode ter uma experiência totalmente digital e, ainda assim, depender de sistemas centrais extremamente robustos para realizar:

  • liquidação financeira;

  • compensação;

  • controle contábil;

  • reconciliação;

  • registro de operações;

  • cálculo de tarifas;

  • processamento de empréstimos;

  • integração com o Banco Central.

É nesse momento que entram os sistemas de missão crítica.


O que acontece quando você faz um PIX?

Vamos imaginar uma situação extremamente comum.

Você abre o aplicativo.

Transfere R$ 100 para um amigo.

A operação parece instantânea.

Na tela tudo ocorre em segundos.

Mas por trás dos bastidores existe uma verdadeira cadeia industrial de processamento.

O aplicativo envia a solicitação.

Uma API recebe o pedido.

Serviços de autenticação validam identidade.

Motores antifraude executam verificações.

Regras de compliance são avaliadas.

Sistemas de limites são consultados.

Dados cadastrais são verificados.

Mensagerias distribuem eventos.

Sistemas contábeis registram a operação.

Mecanismos de liquidação realizam o acerto financeiro.

Tudo isso antes que a mensagem "PIX realizado com sucesso" apareça na tela.

O usuário vê um clique.

O datacenter vê centenas de transações.


Onde entra o mainframe?

É aqui que muita gente se surpreende.

O mainframe raramente aparece na camada visual.

Ele normalmente opera na camada mais importante.

A camada onde não pode haver erro.

Imagine o seguinte cenário.

Se uma rede social ficar indisponível por 10 minutos, usuários reclamam.

Se um streaming cair durante uma série, pessoas ficam irritadas.

Mas se um banco perder o controle de saldos durante 10 minutos?

O problema pode atingir milhões de clientes.

Por isso os sistemas responsáveis pelos registros financeiros mais críticos precisam apresentar:

  • disponibilidade extrema;

  • consistência absoluta;

  • segurança rigorosa;

  • rastreabilidade completa;

  • recuperação imediata.

São justamente essas características que fizeram os mainframes permanecerem relevantes.


O paradoxo da fintech

As fintechs surgiram prometendo romper com os bancos tradicionais.

Em muitos aspectos conseguiram.

Mudaram a experiência do cliente.

Reduziram burocracias.

Popularizaram contas digitais.

Criaram novos modelos de negócio.

Mas descobriram rapidamente uma verdade do mercado financeiro.

Movimentar dinheiro é muito mais difícil do que movimentar dados.

Enviar uma foto errada em uma rede social gera um transtorno.

Transferir R$ 10 milhões para a conta errada gera uma crise.

Por isso a arquitetura financeira moderna acabou evoluindo para um modelo híbrido.

Na superfície:

  • cloud;

  • APIs;

  • microsserviços;

  • inteligência artificial.

No núcleo:

  • processamento transacional;

  • bancos de dados críticos;

  • mensageria corporativa;

  • sistemas centrais de liquidação.

É uma combinação extremamente poderosa.


A nuvem descobriu que precisa do mainframe

Durante alguns anos surgiu uma narrativa bastante agressiva.

Muitos especialistas afirmavam que o mainframe desapareceria rapidamente.

A computação em nuvem seria suficiente para tudo.

A realidade mostrou algo diferente.

O que ocorreu foi integração.

Hoje observamos ambientes híbridos onde:

  • Kubernetes conversa com CICS;

  • APIs REST acessam programas COBOL;

  • aplicações cloud consomem serviços do z/OS;

  • eventos trafegam através do IBM MQ;

  • microsserviços utilizam informações armazenadas em DB2.

Não houve substituição.

Houve convergência.

A nuvem não matou o mainframe.

A nuvem passou a conversar com ele.


O caso brasileiro

O Brasil possui um dos sistemas financeiros mais sofisticados do planeta.

Muitas vezes não percebemos isso.

PIX.

TED.

DOC.

Open Finance.

Cartões.

Boletos.

Débito automático.

Tudo isso precisa funcionar para centenas de milhões de contas.

Os números impressionam.

Bilhões de transações são processadas todos os meses.

Milhões de operações acontecem simultaneamente.

O sistema precisa funcionar:

  • de madrugada;

  • em feriados;

  • durante promoções;

  • na Black Friday;

  • durante a Copa do Mundo;

  • durante grandes eventos nacionais.

A infraestrutura necessária para suportar esse volume é gigantesca.

E boa parte dela continua baseada em tecnologias que nasceram décadas atrás, mas evoluíram continuamente.


O COBOL que ninguém vê

Poucas tecnologias sofreram tanto preconceito quanto o COBOL.

Para muitos profissionais jovens, COBOL parece uma relíquia.

Algo pertencente a museus de informática.

Mas existe um detalhe curioso.

Grande parte das pessoas que criticam COBOL utilizou sistemas processados por COBOL antes mesmo do café da manhã.

Salário.

PIX.

Cartão.

Financiamento.

Previdência.

Seguros.

Consórcios.

Tudo isso frequentemente passa por programas COBOL.

O motivo é simples.

Esses sistemas foram construídos ao longo de décadas.

Receberam investimentos bilionários.

Foram testados em condições extremas.

Acumularam conhecimento de negócio impossível de reproduzir rapidamente.

Muitas vezes o código representa mais valor do que a própria infraestrutura.


O banco invisível

Imagine um iceberg.

O cliente vê apenas a ponta.

Aplicativo.

Cartão.

Notificação.

Interface.

Mas abaixo da superfície existe uma massa gigantesca de tecnologia invisível.

Essa parte inclui:

  • motores contábeis;

  • sistemas regulatórios;

  • integração com Banco Central;

  • mecanismos de liquidação;

  • auditoria;

  • compliance;

  • segurança.

É nesse universo invisível que o mainframe continua brilhando.

E justamente por ser invisível, raramente recebe o reconhecimento merecido.


Quando tudo funciona ninguém percebe

Existe uma ironia interessante no mundo da infraestrutura.

Quanto melhor um sistema funciona, menos as pessoas falam sobre ele.

Ninguém elogia um elevador por funcionar.

Ninguém agradece à rede elétrica por fornecer energia.

Ninguém faz uma postagem comemorando que o saldo bancário apareceu corretamente.

Mas quando ocorre uma falha?

Todo mundo percebe.

Por isso os sistemas centrais são projetados para uma missão simples:

não chamar atenção.

O sucesso é a invisibilidade.


O futuro não é cloud versus mainframe

Uma das maiores lições da última década foi perceber que a discussão estava errada.

A pergunta nunca deveria ter sido:

"Cloud ou Mainframe?"

A pergunta correta é:

"Como integrar os dois da melhor forma possível?"

Os líderes do mercado entenderam isso.

Hoje as arquiteturas mais modernas utilizam o melhor dos dois mundos.

Cloud para:

  • inovação rápida;

  • elasticidade;

  • analytics;

  • inteligência artificial.

Mainframe para:

  • processamento massivo;

  • transações críticas;

  • consistência financeira;

  • segurança corporativa.

O resultado é uma arquitetura híbrida extremamente eficiente.


A verdadeira transformação digital

Muitas empresas acreditam que transformação digital significa abandonar tudo que veio antes.

Mas a história mostra outra coisa.

Transformação digital bem-sucedida raramente consiste em destruir.

Consiste em evoluir.

Os sistemas que sustentam o mercado financeiro brasileiro representam décadas de conhecimento acumulado.

Substituí-los completamente seria como demolir uma usina hidrelétrica para construir um gerador portátil.

Não faz sentido.

O caminho inteligente é modernizar.

Expor APIs.

Integrar plataformas.

Automatizar processos.

Conectar o legado ao futuro.


O que os estudantes precisam entender

Quem está começando carreira em tecnologia frequentemente busca apenas as ferramentas mais recentes.

Isso é natural.

Mas existe uma lição valiosa.

As tecnologias que movimentam bilhões nem sempre são as mais populares nas redes sociais.

Muitas vezes são as mais confiáveis.

As mais estáveis.

As mais resilientes.

O profissional que entende:

  • cloud;

  • APIs;

  • Kubernetes;

  • segurança;

  • mainframe;

  • integração corporativa;

torna-se extremamente valioso para o mercado.

Porque consegue enxergar a arquitetura completa.

Não apenas a camada visível.


Conclusão: o coração continua batendo

Os maiores bancos digitais do Brasil nasceram na nuvem.

Foram criados por uma geração que cresceu falando de APIs, microsserviços e aplicações móveis.

Mudaram completamente a forma como os brasileiros se relacionam com o dinheiro.

Mas, ao crescerem, descobriram algo que os bancos tradicionais já sabiam há décadas.

No mercado financeiro, velocidade é importante.

Experiência do usuário é importante.

Inovação é importante.

Mas nada é mais importante do que confiança.

E confiança se constrói com sistemas capazes de operar dia após dia, ano após ano, movimentando bilhões de reais sem perder o controle de um único centavo.

Por isso, enquanto milhões de brasileiros fazem PIX, pagam boletos, investem, financiam imóveis e utilizam aplicativos modernos, existe uma infraestrutura silenciosa trabalhando nos bastidores.

Uma infraestrutura que raramente aparece nas propagandas.

Que quase nunca vira manchete.

Mas que continua sustentando o sistema financeiro nacional.

A nuvem trouxe inovação.

As fintechs trouxeram agilidade.

Os aplicativos trouxeram conveniência.

Mas, no coração de boa parte dessa engrenagem, o velho gigante continua trabalhando.

Discreto.

Confiável.

Resiliente.

Processando bilhões.

Como faz há décadas.

E, ao que tudo indica, continuará fazendo por muitos anos.


☕🚀 Azure + IBM MQ + CICS + COBOL: Quando a Nuvem Descobre Que Ainda Precisa do Mainframe

Bellacosa Mainframe e uma visão da integração mainframe + nuvem


☕🚀 Azure + IBM MQ + CICS + COBOL: Quando a Nuvem Descobre Que Ainda Precisa do Mainframe

A arquitetura híbrida que responde em milissegundos e movimenta bilhões sem que ninguém perceba

Existe uma frase que escuto há mais de trinta e cinco anos:

"O Mainframe está morrendo."

A primeira vez que ouvi isso foi quando ainda existiam fitas magnéticas por todos os lados, terminais 3270 ocupavam salas inteiras e a internet comercial engatinhava.

Depois ouvi novamente quando surgiram os ERPs.

Depois quando surgiram os Data Centers distribuídos.

Depois quando vieram os smartphones.

Depois quando chegaram os containers.

Depois quando Kubernetes virou moda.

Depois quando a nuvem se tornou o assunto do momento.

E agora escuto novamente com a Inteligência Artificial.

Curiosamente, enquanto todos anunciavam o funeral do Mainframe, ele continuava processando cartões de crédito, transações bancárias, reservas aéreas, operações de seguradoras, sistemas governamentais e bilhões de dólares diariamente.

Talvez o erro nunca tenha sido tecnológico.

Talvez o erro tenha sido imaginar que inovação significa substituir tudo o que existe.

Na prática, a verdadeira inovação costuma acontecer quando conseguimos conectar mundos aparentemente incompatíveis.

E poucas arquiteturas representam isso melhor do que a integração entre Microsoft Azure e IBM Mainframe utilizando IBM MQ, CICS e COBOL.

Estamos falando de uma arquitetura capaz de unir o melhor dos dois universos:

  • Agilidade da nuvem

  • Robustez do Mainframe

  • Escalabilidade dos microsserviços

  • Consistência transacional do CICS

  • Segurança do IBM MQ

  • Décadas de regras de negócio escritas em COBOL

Tudo funcionando como uma única plataforma.


O Grande Equívoco Sobre Modernização

Quando alguém fala em modernização, muitas pessoas imaginam algo parecido com isto:

Sistema Antigo
      ↓
Apagar Tudo
      ↓
Reescrever Tudo
      ↓
Sistema Novo

Na teoria parece simples.

Na prática costuma ser um desastre.

Imagine um banco que possui:

  • 40 milhões de clientes

  • 30 anos de regras de negócio

  • milhares de programas COBOL

  • dezenas de sistemas satélites

  • integrações desconhecidas

Reescrever tudo pode levar anos.

Custar centenas de milhões.

E ainda introduzir novos erros.

Por isso os grandes bancos do mundo adotaram outro caminho.

Em vez de substituir o Mainframe, passaram a conectá-lo ao ecossistema digital.

É exatamente isso que esta arquitetura faz.


O Cliente Nem Imagina o Que Está Acontecendo

Imagine um cliente consultando saldo pelo aplicativo.

Ele toca um botão.

Em menos de um segundo recebe a resposta.

Para ele parece algo simples.

Mas nos bastidores ocorre uma verdadeira orquestra tecnológica.

O aplicativo chama uma API hospedada no Azure.

A API gera uma mensagem JSON.

Essa mensagem atravessa a rede.

Chega ao IBM MQ.

O MQ desperta uma transação CICS.

O CICS chama um programa COBOL.

O COBOL consulta DB2.

A resposta retorna pelo mesmo caminho.

Tudo isso em poucos milissegundos.

O usuário jamais perceberá.

E essa é justamente a beleza da arquitetura.


IBM MQ: O Carteiro Mais Confiável do Mundo Corporativo

Muitos profissionais mais jovens cresceram utilizando APIs REST.

Naturalmente surge a pergunta:

Por que usar MQ?

Porque sistemas críticos exigem garantias que HTTP sozinho não consegue fornecer.

Quando uma mensagem entra em uma fila MQ, ela não desaparece.

Ela permanece armazenada até ser processada.

Mesmo que:

  • um servidor caia

  • a rede falhe

  • uma aplicação seja reiniciada

a mensagem continua lá.

Imagine uma transferência financeira de cem mil reais.

Você gostaria que ela dependesse exclusivamente de uma conexão HTTP momentânea?

Provavelmente não.

É por isso que bancos continuam apaixonados pelo MQ.

Ele foi criado para ambientes onde perder uma única mensagem pode significar prejuízo milionário.


Request-Reply: O Casamento Entre Dois Mundos

Existe um detalhe fascinante nessa arquitetura.

O mundo web é síncrono.

O mundo MQ é assíncrono.

São filosofias diferentes.

Quando um navegador faz uma requisição HTTP, ele espera uma resposta.

Quando uma aplicação grava uma mensagem em uma fila MQ, ela normalmente segue seu caminho.

Mas o usuário quer uma resposta imediata.

Surge então o padrão Request-Reply.

Funciona assim:

A aplicação envia uma mensagem para a fila REQUEST.

O Mainframe processa.

Depois envia uma resposta para uma fila REPLY.

A aplicação recupera a resposta e devolve ao usuário.

Parece simples.

Mas essa simplicidade esconde décadas de evolução arquitetural.


O Poder dos Identificadores

Aqui encontramos um dos elementos mais importantes de toda a solução.

O MsgId.

Cada mensagem recebe um identificador único.

Por exemplo:

A1B2C3D4E5

Quando a resposta é gerada, esse valor reaparece como CorrelId.

Dessa forma:

Request
MsgId = A1B2C3D4E5

Reply
CorrelId = A1B2C3D4E5

A aplicação consegue saber exatamente qual resposta pertence a qual requisição.

Sem isso seria impossível processar milhares de mensagens simultaneamente.

É como o número de protocolo de uma ligação para suporte.

Sem ele tudo viraria uma enorme confusão.


MQ Trigger: O Despertador do Mainframe

Uma das partes mais elegantes dessa arquitetura é o Trigger.

Imagine um operador sentado observando uma fila.

Sempre que chegasse uma mensagem ele iniciaria um programa.

Seria absurdo.

O MQ faz isso automaticamente.

Quando uma mensagem chega:

QUEUE DEPTH = 1

o Trigger entra em ação.

Instantaneamente ele inicia uma transação CICS.

Sem polling.

Sem scripts.

Sem agendadores.

Sem desperdício de CPU.

É uma solução extremamente elegante criada décadas antes do conceito moderno de eventos ganhar popularidade.

Na verdade, muitos sistemas chamados hoje de Event-Driven Architecture fazem algo conceitualmente muito parecido com o que MQ e CICS realizam há anos.


O Router Program: O Maestro da Orquestra

Após a ativação do Trigger entra em cena o Router Program.

Se eu tivesse que apontar o cérebro da arquitetura, seria ele.

Sua função é simples:

Receber.

Analisar.

Decidir.

Encaminhar.

Ele lê o payload.

Consulta tabelas de roteamento.

Avalia parâmetros.

E escolhe qual backend deverá executar o processamento.

Por exemplo:

CONSULTA_CLIENTE → CUST0001
PIX → PIX0001
CARTAO → CARD0001

Isso oferece enorme flexibilidade.

Novos serviços podem ser adicionados sem alterar toda a arquitetura.

Basta cadastrar uma nova regra.

É o equivalente corporativo de um controlador de tráfego aéreo.


Quando COBOL Encontra JSON

Muitos profissionais ainda acreditam que COBOL vive preso a arquivos sequenciais e layouts de 80 colunas.

A realidade atual é muito diferente.

O CICS moderno possui recursos nativos para trabalhar com JSON.

Isso significa que uma estrutura como:

{
  "cliente":"VAGNER",
  "saldo":1500
}

pode ser transformada diretamente em estruturas COBOL.

Sem parsers complexos.

Sem centenas de linhas de manipulação de texto.

Sem gambiarras.

Durante décadas, integrar COBOL com formatos modernos exigia muito esforço.

Hoje o próprio CICS faz grande parte desse trabalho.

Essa é uma das transformações menos conhecidas fora do universo Mainframe.


O Segredo da Performance

Quando alguém vê Azure, JSON e microsserviços, normalmente imagina dezenas de chamadas distribuídas.

Mas o processamento principal acontece dentro do CICS.

E isso muda tudo.

Após chegar ao Mainframe, a execução ocorre dentro de um ambiente extremamente otimizado.

Não existe:

  • startup de container

  • inicialização de JVM

  • criação de novos processos

  • overhead desnecessário

O programa já está carregado.

O ambiente já está pronto.

A transação apenas executa.

É por isso que muitas operações conseguem responder em poucos milissegundos.

Uma característica frequentemente subestimada por quem nunca trabalhou em ambientes de missão crítica.


DB2: O Guardião da Consistência

Toda essa velocidade seria inútil sem consistência.

É aqui que entra o DB2.

Quando o COBOL consulta ou atualiza dados, o DB2 garante:

  • integridade

  • atomicidade

  • isolamento

  • durabilidade

Os famosos princípios ACID.

Em outras palavras:

ou tudo acontece corretamente

ou nada acontece.

Em sistemas financeiros isso não é luxo.

É obrigação.

Ninguém quer descobrir que o débito ocorreu mas o crédito não.


O Valor das Transações

Um aspecto frequentemente ignorado é o gerenciamento transacional.

Quando MQ, CICS e DB2 trabalham juntos, formam um ecossistema extremamente robusto.

Imagine:

  • mensagem recebida

  • atualização realizada

  • resposta enviada

Tudo dentro de uma única unidade lógica de trabalho.

Se qualquer etapa falhar:

rollback.

Como se nada tivesse acontecido.

Esse é um dos motivos pelos quais Mainframes continuam dominando ambientes financeiros.

Confiabilidade não é um recurso opcional.

É parte fundamental do negócio.


Dead Letter Queue: A Sala de Quarentena

Nem toda mensagem nasce perfeita.

Erros acontecem.

Layouts incorretos.

Dados inválidos.

Problemas de roteamento.

Mensagens corrompidas.

Se elas bloqueassem a fila principal, toda a operação sofreria.

A solução é a Dead Letter Queue.

A famosa DLQ.

Ela funciona como uma área de isolamento.

Mensagens problemáticas são removidas do fluxo principal e armazenadas separadamente.

O processamento continua.

Os usuários continuam trabalhando.

A equipe técnica pode investigar posteriormente.

É um conceito simples.

Mas extremamente poderoso.


O Que os Jovens Arquitetos Podem Aprender Com Isso

Existe uma tendência atual de acreditar que tudo começou com APIs, Kubernetes e microsserviços.

Arquiteturas como esta mostram que muitos conceitos modernos possuem raízes muito mais antigas.

Observe:

Eventos.

Mensageria.

Roteamento dinâmico.

Processamento assíncrono.

Alta disponibilidade.

Escalabilidade.

Observabilidade.

Resiliência.

Tudo isso já existia em ambientes Mainframe décadas atrás.

A diferença é que hoje utilizamos novos nomes para ideias antigas.


O Futuro Não É Cloud ou Mainframe

A pergunta correta não é:

Cloud ou Mainframe?

A pergunta correta é:

Como combinar Cloud e Mainframe?

A resposta está justamente nesta arquitetura.

O Azure fornece velocidade para inovação.

O Mainframe fornece estabilidade para execução.

O MQ conecta os dois mundos.

O CICS orquestra as transações.

O COBOL preserva o conhecimento acumulado.

O DB2 protege os dados.

Juntos, eles formam uma plataforma capaz de atender milhões de usuários simultaneamente.


Considerações Finais

Ao observar esta arquitetura, não vejo apenas filas MQ, programas COBOL ou serviços Azure.

Vejo algo muito mais interessante.

Vejo a prova de que tecnologia não é uma disputa entre velho e novo.

É uma construção contínua.

Os sistemas que realmente movem o mundo raramente são os mais barulhentos.

São os mais confiáveis.

Enquanto muitos discutem tendências, frameworks e modismos passageiros, arquiteturas híbridas como esta continuam processando pagamentos, movimentando recursos financeiros, autorizando cartões, executando operações críticas e sustentando economias inteiras.

Talvez essa seja a maior lição de todas.

O futuro não pertence exclusivamente à nuvem.

O futuro pertence às arquiteturas capazes de unir inovação e legado sem sacrificar desempenho, segurança ou confiabilidade.

E poucas combinações fazem isso tão bem quanto Azure, IBM MQ, CICS, COBOL e DB2 trabalhando em perfeita harmonia.

Porque, no final das contas, modernizar não significa destruir o passado.

Significa construir pontes entre o que já funciona e aquilo que ainda está por vir.

E essa arquitetura é uma dessas pontes.


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...