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 Midazcomponents/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 JSONdata object.
Topics, manifest, and routing
The application topic identifies Midaz Tracer, not an individual event. Route a record byce-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/manifestexposes the public JSON catalog and topic mapping, including while publication is off.
Delivery and failure semantics
Publication starts only whenSTREAMING_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
factwith direct delivery,on_routable_failureDLQ handling, andfallback_on_circuit_openconfigured bylib-streamingv3. - 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.
limit.activated
limit.activated
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.IDlimit.created
limit.created
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.IDlimit.deactivated
limit.deactivated
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.IDlimit.deleted
limit.deleted
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.IDlimit.drafted
limit.drafted
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.IDlimit.updated
limit.updated
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.IDrule.activated
rule.activated
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.IDrule.created
rule.created
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.IDrule.deactivated
rule.deactivated
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.IDrule.deleted
rule.deleted
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.IDrule.drafted
rule.drafted
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.IDrule.updated
rule.updated
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
