Skip to main content
Reporter emits domain events as CloudEvents 1.0 messages in binary content mode. Unlike Midaz and the other Kafka producers, Reporter publishes over RabbitMQ: every event is routed to the exchange named by RABBITMQ_REPORT_EVENTS_EXCHANGE with the event key as the AMQP routing key (report.finished routes as report.finished). The envelope is identical to the rest of the platform — see the shared envelope — and the topic value in the manifest is a logical identifier derived from the source, not a broker destination. Every event carries ce-schemaversion 1.0.0. Payload keys are snake_case. Fields marked ? are optional or null-able. Emission is post-commit and never fails the underlying work. Critical events are outbox-backed — written to a durable outbox and replayed through broker outages; Important events publish directly, falling back to the outbox when the broker circuit opens. For concepts, the manifest operation, and consumer guidance, read the Reporter events guide; the machine-readable catalog is served at GET /v1/streaming/events.

Template events

All Important.

Report events

report.requested is Important; the three terminal events are Critical. report.errored can originate from the manager (dispatch failure) or the worker (generation failure). Both share the deterministic ce-id reporter.report.error.<report_id>, so duplicates collapse at the consumer.

Deadline events

deadline.delivered and deadline.delivery_reverted are Critical; the rest are Important.

Events consumed

Reporter consumes no platform events — this channel is publish-only. The manager-to-worker report generation traffic runs on an internal RabbitMQ work queue that is not part of the public event contract.