Saltar al contenido principal

Catalogo de Eventos de Dominio

Este documento define el lenguaje común de eventos para servicios, auditoría y analítica.

1. Contrato base de evento

{
"event_id": "uuid",
"event_name": "APPOINTMENT_CONFIRMED",
"occurred_at": "2026-02-13T16:30:00Z",
"trace_id": "uuid",
"producer": "appointments-service",
"schema_version": "1.0.0",
"payload": {},
"meta": {
"country_code": "GT",
"source": "api"
}
}

2. Eventos canónicos por dominio

Event nameProductorConsumidor(es)Payload mínimoPIIIdempotencia
REGISTER_STARTEDauth-serviceaudit, analyticsuser_id, channelBajaevent_id único
REGISTER_COMPLETEDauth-serviceprofile-service, analyticsuser_id, rolesMediaevent_id único
USER_LOGGED_INauth-serviceaudit, analyticsuser_id, methodMediaevent_id único
REFRESH_REUSEauth-servicesecurity, audituser_id, session_idMediaevent_id único
PROFILE_VERIFIEDbackoffice-serviceprofile-service, audituser_id, decisionMediaevent_id único
CAT_GEO_CREATEDcatalog-servicesearch-service, auditnode_id, levelBajaevent_id único
CAT_SPECIALTY_CREATEDcatalog-servicesearch-service, auditspecialty_id, area_idBajaevent_id único
SEARCH_PERFORMEDsearch-serviceanalyticsquery, filters, result_countBajamuestreo permitido
APPOINTMENT_CONFIRMEDappointments-servicenotification-service, analyticsappointment_id, patient_id, doctor_idAltaappointment_id + estado
APPOINTMENT_CANCELLEDappointments-servicenotification-service, analyticsappointment_id, reasonMediaappointment_id + estado
NOTIF_SENTnotification-serviceaudit, analyticsmessage_id, channel, statusBajamessage_id
NOTIF_FAILEDnotification-serviceops, dlq-monitormessage_id, channel, error_codeBajamessage_id
REVIEW_SUBMITTEDreview-servicemoderation, analyticsreview_id, target_id, ratingBajareview_id
COUPON_CREATEDpromotions-serviceaudit, analyticscoupon_id, owner_idBajacoupon_id
POST_PUBLISHEDcontent-servicesearch-service, analyticspost_id, author_idBajapost_id

3. Política de versionado de eventos

  • Todo evento incluye schema_version.
  • Cambios incompatibles de payload requieren nueva versión de esquema.
  • Consumidores deben soportar al menos versión actual y versión anterior durante migración.

4. Entrega, retries y DLQ

Tipo de eventoEstrategiaRetriesDLQ
Crítico transaccional (APPOINTMENT_*, REFRESH_REUSE)At-least-once + deduplicación por event_id5
Operativo (NOTIF_*)At-least-once8
Analítico (SEARCH_PERFORMED)At-most-once/muestreo0-1No

Reglas:

  • dlq_depth > 0 por 5 min dispara alerta SEV2.
  • Reprocesamiento de DLQ debe quedar auditado.
  • Nunca incluir secretos/tokens en payload.

5. Checklist de adopción por servicio

  • Producer emite evento con contrato base y schema_version.
  • Consumer valida esquema y maneja versiones.
  • Métricas de entrega/fallo expuestas (published, processed, failed, dlq_depth).
  • Runbook incluye pasos de reproceso de DLQ.