Skip to main content
Tracer emite sus hechos de negocio JSON públicos como CloudEvents 1.0 en modo de contenido binario sobre Kafka. Tracer es el componente de Midaz que se despliega por separado y el único productor del contrato studio.lerian.tracer.* de esta página.

Envelope de CloudEvents

Todo hecho JSON público usa el envelope compartido que aparece a continuación. Los headers transportan la información de enrutamiento y de esquema. El valor de Kafka transporta el objeto data en JSON.

Temas, manifiesto y enrutamiento

El tema de la aplicación identifica a Midaz Tracer, no a un evento individual. Enruta un registro por ce-resourcetype y ce-eventtype, y valida ce-schemaversion antes de decodificar su valor data.
  • Hechos: lerian.streaming.tracer
  • Ruta DLQ: lerian.streaming.tracer.dlq
  • Manifiesto: GET /v1/streaming/manifest expone el catálogo JSON público y el mapeo de temas, incluso mientras la publicación está desactivada.

Semántica de entrega y fallos

La publicación está deshabilitada hasta que STREAMING_ENABLED=true y la configuración del broker se completa con éxito. Cuando está habilitada, Tracer emite después del cambio de estado de negocio. No usa un outbox transaccional.
  • Política: cada definición JSON pública es un fact con entrega directa, manejo de DLQ on_routable_failure y fallback_on_circuit_open.
  • Límite real de Tracer: como Tracer no tiene outbox, el fallback de circuito abierto no puede persistir un evento. Las rutas de emisión registran y absorben los errores de publicación en lugar de devolverlos al comando de negocio.
  • Requisito del consumidor: la entrega del broker es al menos una vez para los registros publicados. Haz que los handlers sean idempotentes y deduplica con (ce-source, ce-id).

Contratos completos de data

Estas declaraciones al estilo TypeScript reflejan las etiquetas JSON de data del CloudEvent en Midaz. Cada nombre de campo es su nombre JSON. ? significa que el campo tiene omitempty. | null significa que el campo es nullable y nunca está ausente. Un comentario de tipo de origen conserva exactamente el tipo del inventario. Todos los campos de estos 12 payloads de Tracer están presentes (omitempty: false). Los campos nullable siguen llevando null cuando están ausentes.
Clave de definición: limit.activated (LimitActivatedDefinition)Evento: studio.lerian.tracer.limit.activatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: ActivateLimitCommand activa un límite con éxito.Asunto: p.ID
Clave de definición: limit.created (LimitCreatedDefinition)Evento: studio.lerian.tracer.limit.createdTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.1.0 (application/json)Se dispara cuando: CreateLimitCommand crea un límite con éxito.Asunto: p.ID
Clave de definición: limit.deactivated (LimitDeactivatedDefinition)Evento: studio.lerian.tracer.limit.deactivatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DeactivateLimitCommand desactiva un límite con éxito.Asunto: p.ID
Clave de definición: limit.deleted (LimitDeletedDefinition)Evento: studio.lerian.tracer.limit.deletedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DeleteLimitCommand elimina un límite con éxito.Asunto: p.ID
Clave de definición: limit.drafted (LimitDraftedDefinition)Evento: studio.lerian.tracer.limit.draftedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DraftLimitCommand mueve un límite a DRAFT con éxito.Asunto: p.ID
Clave de definición: limit.updated (LimitUpdatedDefinition)Evento: studio.lerian.tracer.limit.updatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.1.0 (application/json)Se dispara cuando: UpdateLimitCommand actualiza un límite con éxito.Asunto: p.ID
Clave de definición: rule.activated (RuleActivatedDefinition)Evento: studio.lerian.tracer.rule.activatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: ActivateRuleService activa una regla con éxito.Asunto: p.ID
Clave de definición: rule.created (RuleCreatedDefinition)Evento: studio.lerian.tracer.rule.createdTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: CreateRuleCommand crea una regla con éxito.Asunto: p.ID
Clave de definición: rule.deactivated (RuleDeactivatedDefinition)Evento: studio.lerian.tracer.rule.deactivatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DeactivateRuleService desactiva una regla con éxito.Asunto: p.ID
Clave de definición: rule.deleted (RuleDeletedDefinition)Evento: studio.lerian.tracer.rule.deletedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DeleteRuleService elimina una regla con éxito.Asunto: p.ID
Clave de definición: rule.drafted (RuleDraftedDefinition)Evento: studio.lerian.tracer.rule.draftedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: DraftRuleService mueve una regla a DRAFT con éxito.Asunto: p.ID
Clave de definición: rule.updated (RuleUpdatedDefinition)Evento: studio.lerian.tracer.rule.updatedTema: lerian.streaming.tracerRuta DLQ: lerian.streaming.tracer.dlqEsquema: 1.0.0 (application/json)Se dispara cuando: UpdateRuleCommand actualiza una regla con éxito.Asunto: p.ID

Índice de eventos emitidos