Skip to content

Event contracts

Event payloads are versioned JSON Schemas under contracts/events/. Every RabbitMQ message uses the shared envelope; per-event files describe the data object. Living index:Event catalog. Hub: Contracts.

EventSchemaNotes
Envelopeevent-envelope.v1.jsonWraps every outbox / RabbitMQ message
user.created v1user.created.v1.jsonOL → CAP/LMS/WorkMasters provisioning
user.deleted v1user.deleted.v1.jsonOL → CAP PII anonymize
payment.completed v1payment.completed.v1.jsonOL → CAP / LMS unlock
payment.failed v1payment.failed.v1.jsonOL → CAP (and later LMS)
notification.requested v1notification.requested.v1.jsonAny business service → OL Notify
application.stage_changed v1application.stage_changed.v1.jsonCAP → Audit / analytics
application.evaluation_inconclusive v1application.evaluation_inconclusive.v1.jsonCAP → LMS recommendations
application.certified v1application.certified.v1.jsonCAP → WorkMasters, LMS
lms.enrollment.activated v1lms.enrollment.activated.v1.jsonLMS → analytics / notify
lms.course.completed v1lms.course.completed.v1.jsonLMS → CAP (GAP_TRAINING), WorkMasters later
lms.certificate.issued v1lms.certificate.issued.v1.jsonLMS → WorkMasters later

Raw files live at contracts/events/ and are copied topublic/contracts/events/ via pnpm sync:contracts.