Skip to main content
O 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 do components/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 JSON data.

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 por ce-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/manifest expõ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 fact com entrega direta, tratamento de DLQ on_routable_failure e fallback_on_circuit_open configurado pelo lib-streaming v3.
  • 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.
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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.ID
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

Índice de eventos emitidos