components/tracer do Midaz atual emite seus fatos de negócio JSON públicos como CloudEvents 1.0 em modo de conteúdo binário sobre Kafka por meio de lib-streaming. Este é o produtor do contrato studio.lerian.tracer.* desta página.
O Tracer é o componente do Midaz implantado separadamente e o único produtor documentado aqui; não atribua estes eventos a um repositório separado.
Catálogo JSON público do Tracer
O manifesto docomponents/tracer no Midaz contém as definições verificadas a seguir. Todas as 12 definições possuem emissores de produção não-test; nenhuma existe apenas no catálogo. O Midaz não inicializa um consumidor lib-streaming para esses fatos.
Envelope CloudEvents
Cada fato JSON público usa o envelope compartilhado abaixo. Os cabeçalhos carregam as informações de roteamento e schema; o valor Kafka carrega o objeto JSONdata.
Tópicos, manifesto e roteamento
O tópico da aplicação identifica o Tracer do Midaz, e não um evento individual. Roteie um registro porce-resourcetype e ce-eventtype e valide ce-schemaversion antes de decodificar seu valor data.
- Fatos:
lerian.streaming.tracer - DLQ de rota:
lerian.streaming.tracer.dlq - Manifesto:
GET /v1/streaming/manifestexpõe o catálogo JSON público e o mapeamento de tópicos, inclusive quando a publicação está desabilitada.
Semântica de entrega e falha
A publicação fica desabilitada atéSTREAMING_ENABLED=true e a configuração do broker ter sucesso. Quando habilitado, o Midaz emite depois da alteração do estado de negócio. Ele não configura um writer de outbox, repositório de outbox, outbox transacional ou relay de outbox do lib-streaming.
- Política: cada definição JSON pública é um
factcom entrega direta, tratamento de DLQon_routable_failureefallback_on_circuit_openconfigurado pelolib-streamingv3. - Limite real do Midaz: como nenhum writer de outbox está configurado, o fallback em circuito aberto não pode persistir um evento. Os caminhos de emissão registram e ignoram erros de publicação em vez de retorná-los ao comando de negócio. Este não é um contrato de outbox atômico.
- Limite do consumidor: o Midaz não configura um consumidor para estes fatos, e a política direta do produtor não estabelece uma garantia transacional de entrega. Consumidores devem manter handlers idempotentes e deduplicar por
(ce-source, ce-id).
Contratos completos de data
Estas declarações no estilo TypeScript espelham as tags JSON de data do CloudEvent no Midaz. Cada nome de campo é seu nome JSON. ? significa que o campo possui omitempty; | null significa que o campo é anulável sem ser omitido. Um comentário de tipo-fonte preserva exatamente o tipo do inventário. Todos os campos nestes 12 payloads do Tracer estão presentes (omitempty: false); campos anuláveis ainda são emitidos com null quando ausentes.
limit.activated
limit.activated
Chave da definição:
limit.activated (LimitActivatedDefinition)Evento: studio.lerian.tracer.limit.activatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: ActivateLimitCommand ativa um limite com sucesso.Subject: p.IDlimit.created
limit.created
Chave da definição:
limit.created (LimitCreatedDefinition)Evento: studio.lerian.tracer.limit.createdTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: CreateLimitCommand cria um limite com sucesso.Subject: p.IDlimit.deactivated
limit.deactivated
Chave da definição:
limit.deactivated (LimitDeactivatedDefinition)Evento: studio.lerian.tracer.limit.deactivatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DeactivateLimitCommand desativa um limite com sucesso.Subject: p.IDlimit.deleted
limit.deleted
Chave da definição:
limit.deleted (LimitDeletedDefinition)Evento: studio.lerian.tracer.limit.deletedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DeleteLimitCommand exclui um limite com sucesso.Subject: p.IDlimit.drafted
limit.drafted
Chave da definição:
limit.drafted (LimitDraftedDefinition)Evento: studio.lerian.tracer.limit.draftedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DraftLimitCommand move para DRAFT um limite com sucesso.Subject: p.IDlimit.updated
limit.updated
Chave da definição:
limit.updated (LimitUpdatedDefinition)Evento: studio.lerian.tracer.limit.updatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: UpdateLimitCommand atualiza um limite com sucesso.Subject: p.IDrule.activated
rule.activated
Chave da definição:
rule.activated (RuleActivatedDefinition)Evento: studio.lerian.tracer.rule.activatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: ActivateRuleService ativa uma regra com sucesso.Subject: p.IDrule.created
rule.created
Chave da definição:
rule.created (RuleCreatedDefinition)Evento: studio.lerian.tracer.rule.createdTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: CreateRuleCommand cria uma regra com sucesso.Subject: p.IDrule.deactivated
rule.deactivated
Chave da definição:
rule.deactivated (RuleDeactivatedDefinition)Evento: studio.lerian.tracer.rule.deactivatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DeactivateRuleService desativa uma regra com sucesso.Subject: p.IDrule.deleted
rule.deleted
Chave da definição:
rule.deleted (RuleDeletedDefinition)Evento: studio.lerian.tracer.rule.deletedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DeleteRuleService exclui uma regra com sucesso.Subject: p.IDrule.drafted
rule.drafted
Chave da definição:
rule.drafted (RuleDraftedDefinition)Evento: studio.lerian.tracer.rule.draftedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: DraftRuleService move para DRAFT uma regra com sucesso.Subject: p.IDrule.updated
rule.updated
Chave da definição:
rule.updated (RuleUpdatedDefinition)Evento: studio.lerian.tracer.rule.updatedTópico: lerian.streaming.tracerDLQ de rota: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Dispara quando: UpdateRuleCommand atualiza uma regra com sucesso.Subject: p.ID
