studio.lerian.tracer.* desta página.
Envelope do CloudEvents
Todo fato JSON público usa o envelope compartilhado abaixo. Os headers carregam informações de roteamento e schema. O valor do Kafka carrega o objeto JSONdata.
Tópicos, manifesto e roteamento
O tópico da aplicação identifica o Midaz Tracer, 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 - Rota DLQ:
lerian.streaming.tracer.dlq - Manifesto:
GET /v1/streaming/manifestexpõe o catálogo JSON público e o mapeamento de tópicos, inclusive enquanto a publicação está desligada.
Semântica de entrega e falha
A publicação fica desabilitada até queSTREAMING_ENABLED=true e a configuração do broker seja bem-sucedida. Quando habilitado, o Tracer emite depois da mudança de estado de negócio. Ele não usa um outbox transacional.
- Política: toda definição JSON pública é um
factcom entrega direta, tratamento de DLQ poron_routable_failureefallback_on_circuit_open. - Limite real do Tracer: como o Tracer não tem outbox, o fallback de circuito aberto não consegue persistir um evento. Os caminhos de emissão registram em log e engolem os erros de publicação em vez de retorná-los ao comando de negócio.
- Requisito do consumidor: a entrega do broker é pelo menos uma vez para os registros publicados. Torne os handlers idempotentes e faça deduplicação com
(ce-source, ce-id).
Contratos data completos
Essas declarações no estilo TypeScript espelham as tags JSON data do CloudEvent no Midaz. Cada nome de campo é o seu nome JSON. ? significa que o campo tem omitempty. | null significa que o campo é anulável e nunca está ausente. Um comentário de tipo de origem preserva o tipo do inventário exatamente. Todos os campos nesses 12 payloads do Tracer estão presentes (omitempty: false). Campos anuláveis ainda carregam null quando ausentes.
limit.activated
limit.activated
Chave de definição:
limit.activated (LimitActivatedDefinition)Evento: studio.lerian.tracer.limit.activatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: ActivateLimitCommand ativa um limite com sucesso.Subject: p.IDlimit.created
limit.created
Chave de definição:
limit.created (LimitCreatedDefinition)Evento: studio.lerian.tracer.limit.createdTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.1.0 (application/json)Disparado quando: CreateLimitCommand cria um limite com sucesso.Subject: p.IDlimit.deactivated
limit.deactivated
Chave de definição:
limit.deactivated (LimitDeactivatedDefinition)Evento: studio.lerian.tracer.limit.deactivatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DeactivateLimitCommand desativa um limite com sucesso.Subject: p.IDlimit.deleted
limit.deleted
Chave de definição:
limit.deleted (LimitDeletedDefinition)Evento: studio.lerian.tracer.limit.deletedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DeleteLimitCommand exclui um limite com sucesso.Subject: p.IDlimit.drafted
limit.drafted
Chave de definição:
limit.drafted (LimitDraftedDefinition)Evento: studio.lerian.tracer.limit.draftedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DraftLimitCommand move um limite para DRAFT com sucesso.Subject: p.IDlimit.updated
limit.updated
Chave de definição:
limit.updated (LimitUpdatedDefinition)Evento: studio.lerian.tracer.limit.updatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.1.0 (application/json)Disparado quando: UpdateLimitCommand atualiza um limite com sucesso.Subject: p.IDrule.activated
rule.activated
Chave de definição:
rule.activated (RuleActivatedDefinition)Evento: studio.lerian.tracer.rule.activatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: ActivateRuleService ativa uma regra com sucesso.Subject: p.IDrule.created
rule.created
Chave de definição:
rule.created (RuleCreatedDefinition)Evento: studio.lerian.tracer.rule.createdTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: CreateRuleCommand cria uma regra com sucesso.Subject: p.IDrule.deactivated
rule.deactivated
Chave de definição:
rule.deactivated (RuleDeactivatedDefinition)Evento: studio.lerian.tracer.rule.deactivatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DeactivateRuleService desativa uma regra com sucesso.Subject: p.IDrule.deleted
rule.deleted
Chave de definição:
rule.deleted (RuleDeletedDefinition)Evento: studio.lerian.tracer.rule.deletedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DeleteRuleService exclui uma regra com sucesso.Subject: p.IDrule.drafted
rule.drafted
Chave de definição:
rule.drafted (RuleDraftedDefinition)Evento: studio.lerian.tracer.rule.draftedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: DraftRuleService move uma regra para DRAFT com sucesso.Subject: p.IDrule.updated
rule.updated
Chave de definição:
rule.updated (RuleUpdatedDefinition)Evento: studio.lerian.tracer.rule.updatedTópico: lerian.streaming.tracerRota DLQ: lerian.streaming.tracer.dlqSchema: 1.0.0 (application/json)Disparado quando: UpdateRuleCommand atualiza uma regra com sucesso.Subject: p.ID
