Skip to content

Events & Asynchronous Processing

Status: Proposed baseline

Event classes

  • Domain events: facts inside an engine, e.g. booking.confirmed.
  • Integration events: stable cross-engine/provider facts.
  • Jobs: commands intended for asynchronous execution, e.g. send_booking_email.

Reliability baseline

Use a transactional outbox for events that must be consistent with database commits. Consumers are idempotent. Failed jobs use bounded retries and dead-letter/manual-retry workflows.

Common events

tenant.created
tenant.suspended
membership.changed
business_unit.created
offering.published
availability.changed
price_rule.changed
lead.created
quote.issued
quote.accepted
booking.created
booking.confirmed
booking.cancelled
payment.authorized
payment.captured
payment.refunded
site.published
campaign.published
ad_campaign.synced
integration.failed

Events carry eventId, occurredAt, tenantId where applicable, aggregate identity, schema version and correlation/causation identifiers.