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.