Skip to main content
O Reporter emite eventos de domínio como mensagens CloudEvents 1.0 em modo de conteúdo binário. Diferente do Midaz e dos demais produtores Kafka, o Reporter publica sobre RabbitMQ: cada evento é roteado ao exchange nomeado por RABBITMQ_REPORT_EVENTS_EXCHANGE com a chave do evento como routing key AMQP (report.finished roteia como report.finished). O envelope é idêntico ao do resto da plataforma — consulte o envelope compartilhado — e o valor topic no manifesto é um identificador lógico derivado da fonte, não um destino no broker. Todo evento carrega ce-schemaversion 1.0.0. As chaves do payload são snake_case. Campos marcados com ? são opcionais ou anuláveis. A emissão é pós-commit e nunca falha o trabalho subjacente. Eventos Critical são respaldados por outbox — gravados em um outbox durável e retransmitidos durante quedas do broker; eventos Important publicam direto, com fallback para o outbox quando o circuito do broker abre. Para os conceitos, a operação de manifesto e a orientação ao consumidor, leia o guia de eventos do Reporter; o catálogo legível por máquina é servido em GET /v1/streaming/events.

Eventos de template

Todos Important.

Eventos de relatório

report.requested é Important; os três eventos terminais são Critical. report.errored pode se originar do manager (falha de despacho) ou do worker (falha de geração). Ambos compartilham o ce-id determinístico reporter.report.error.<report_id>, então duplicatas colapsam no consumidor.

Eventos de prazo

deadline.delivered e deadline.delivery_reverted são Critical; os demais são Important.

Eventos consumidos

O Reporter não consome eventos da plataforma — este canal é somente de publicação. O tráfego de geração de relatórios entre manager e worker roda em uma fila de trabalho RabbitMQ interna que não faz parte do contrato público de eventos.