Skip to main content
The current Midaz components/tracer emits its public JSON business facts as CloudEvents 1.0 in binary content mode over Kafka through lib-streaming. This is the producer for the studio.lerian.tracer.* contract on this page. Tracer is the separately deployed Midaz component and the sole producer documented here. Do not attribute these events to a separate repository.

Public JSON Tracer catalog

The Midaz components/tracer manifest contains the following verified definitions. All 12 definitions have non-test production callers. None is catalog-only. Midaz does not bootstrap a lib-streaming consumer for these facts.

CloudEvents envelope

Every public JSON fact uses the shared envelope below. The headers carry routing and schema information. The Kafka value carries the JSON data object.

Topics, manifest, and routing

The application topic identifies Midaz Tracer, not an individual event. Route a record by ce-resourcetype and ce-eventtype, and validate ce-schemaversion before decoding its data value.
  • Facts: lerian.streaming.tracer
  • Route DLQ: lerian.streaming.tracer.dlq
  • Manifest: GET /v1/streaming/manifest exposes the public JSON catalog and topic mapping, including while publication is off.

Delivery and failure semantics

Publication starts only when STREAMING_ENABLED=true and broker configuration succeeds. When enabled, Midaz emits after the business-state change. It does not wire a lib-streaming outbox writer, outbox repository, transactional outbox, or outbox relay.
  • Policy: every public JSON definition is a fact with direct delivery, on_routable_failure DLQ handling, and fallback_on_circuit_open configured by lib-streaming v3.
  • Actual Midaz boundary: because no outbox writer is wired, the circuit-open fallback cannot persist an event. Emit paths log and swallow publication errors instead of returning them to the business command. This is not an atomic outbox contract.
  • Consumer boundary: Midaz wires no consumer for these facts, and the direct producer policy does not establish a transactional delivery guarantee. Consumers should make handlers idempotent and deduplicate with (ce-source, ce-id).

Complete data contracts

These TypeScript-style declarations mirror the CloudEvent data JSON tags in Midaz. Every field name is its JSON name. ? means the field has omitempty. | null means the field is nullable and never absent. A source-type comment preserves the inventory type exactly. All fields in these 12 Tracer payloads are present (omitempty: false). Nullable fields still carry null when absent.
Definition key: limit.activated (LimitActivatedDefinition)Event: studio.lerian.tracer.limit.activatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: ActivateLimitCommand successfully activates a limit.Subject: p.ID
Definition key: limit.created (LimitCreatedDefinition)Event: studio.lerian.tracer.limit.createdTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: CreateLimitCommand successfully creates a limit.Subject: p.ID
Definition key: limit.deactivated (LimitDeactivatedDefinition)Event: studio.lerian.tracer.limit.deactivatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DeactivateLimitCommand successfully deactivates a limit.Subject: p.ID
Definition key: limit.deleted (LimitDeletedDefinition)Event: studio.lerian.tracer.limit.deletedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DeleteLimitCommand successfully deletes a limit.Subject: p.ID
Definition key: limit.drafted (LimitDraftedDefinition)Event: studio.lerian.tracer.limit.draftedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DraftLimitCommand successfully moves a limit to DRAFT.Subject: p.ID
Definition key: limit.updated (LimitUpdatedDefinition)Event: studio.lerian.tracer.limit.updatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: UpdateLimitCommand successfully updates a limit.Subject: p.ID
Definition key: rule.activated (RuleActivatedDefinition)Event: studio.lerian.tracer.rule.activatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: ActivateRuleService successfully activates a rule.Subject: p.ID
Definition key: rule.created (RuleCreatedDefinition)Event: studio.lerian.tracer.rule.createdTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: CreateRuleCommand successfully creates a rule.Subject: p.ID
Definition key: rule.deactivated (RuleDeactivatedDefinition)Event: studio.lerian.tracer.rule.deactivatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DeactivateRuleService successfully deactivates a rule.Subject: p.ID
Definition key: rule.deleted (RuleDeletedDefinition)Event: studio.lerian.tracer.rule.deletedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DeleteRuleService successfully deletes a rule.Subject: p.ID
Definition key: rule.drafted (RuleDraftedDefinition)Event: studio.lerian.tracer.rule.draftedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: DraftRuleService successfully moves a rule to DRAFT.Subject: p.ID
Definition key: rule.updated (RuleUpdatedDefinition)Event: studio.lerian.tracer.rule.updatedTopic: lerian.streaming.tracerRoute DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Fires when: UpdateRuleCommand successfully updates a rule.Subject: p.ID

Emitted event index