De onde vêm os dados e para onde vão
- De: uma tabela, view ou SELECT no SQL Server, PostgreSQL, Oracle, MySQL, MariaDB, Firebird, SQLite ou InterSystems IRIS; ou um arquivo JSON ou CSV.
- Para: Kafka, Redpanda, Apache Pulsar, RabbitMQ, uma API REST, um serviço SOAP, um método gRPC ou uma stored procedure em outro banco.
A origem só é lida.

Monte a mensagem e confira antes de enviar
- Mapeie os campos da origem para o JSON de que você precisa, inclusive objetos aninhados (
customer.name). - Limpe os valores no caminho: trim, maiúsculas e minúsculas, substituições, valores fixos, formatos de número e data, tabelas de valores, mascaramento e hash para campos sensíveis. Sem scripts para escrever.
- A prévia monta o JSON dos primeiros registros sem enviar nada e mostra quais registros falhariam e por quê.
- Envie uma amostra de poucos registros para conferir o destino, e depois rode o resto.
Saiba o que aconteceu com cada registro
Cada registro termina num destes estados, para você distinguir uma rejeição de um timeout:
| Estado | Significado |
|---|---|
| Confirmado | O destino confirmou o recebimento |
| Rejeitado | O destino recusou (por exemplo HTTP 400, ou nenhuma fila para rotear) |
| Desconhecido | Enviado, mas nenhuma confirmação chegou; pode ter sido entregue |
| Inválido | Falhou nas suas regras de mapeamento; não foi enviado |
Os registros que falharam são listados num arquivo com o número e o motivo, sem o conteúdo do registro, e toda execução fica guardada no histórico.
Rode de novo amanhã
Salve a definição e rode pela CLI ou pelo Agendador de Tarefas do Windows. As credenciais ficam guardadas protegidas para o seu usuário do Windows, não em texto aberto.
O que ele não é
- Não é exactly-once. Não há transação entre o banco e o broker. Rodar a mesma definição de novo envia os registros de novo, e uma execução interrompida recomeça do início. Prepare o consumidor para lidar com duplicados (uma chave idempotente costuma bastar).
- Não é captura de mudanças (CDC). Ele envia as linhas que você seleciona quando roda; não transmite as mudanças à medida que acontecem. Use um filtro WHERE (por exemplo
updated_at > …) nas execuções recorrentes. - Sem Schema Registry. As mensagens são JSON simples em UTF-8; Avro e Protobuf com registry não são suportados.
- Só produz. Ele não consome de tópicos nem de filas.
Faz parte da convivência de dados →