Notification Domain Events¶
Why This Exists¶
This document defines events published by the Notification Domain.
Owner¶
The owner is the Chief Product Officer and Enterprise Architect.
Business Value¶
Notification events provide traceability for communication workflows and allow analytics, audit, and adjacent domains to observe delivery outcomes without owning Notification state.
Event Metadata¶
Every Notification event should include:
- EventId.
- EventType.
- OccurredAt.
- NotificationId or RequestId.
- OrganizationId where applicable.
- UserId or RecipientReference where applicable.
- SourceReference.
- CorrelationId.
- CausationId.
- SchemaVersion.
Event Catalogue¶
| Event | Trigger | Payload | Consumers | Business value |
|---|---|---|---|---|
| NotificationRequested | A domain or workflow requests communication. | RequestId, type, source reference, recipient rule, priority. | Notification, Analytics. | Starts communication workflow. |
| NotificationCreated | A request creates one or more notification records. | NotificationId, request ID, recipients, type. | Analytics, Audit. | Records message creation. |
| NotificationScheduled | A notification is scheduled. | NotificationId, schedule rule, due time. | Scheduler, Analytics. | Supports future or repeated reminders. |
| NotificationRendered | Template is rendered for channel delivery. | NotificationId, template version, channel. | Audit. | Preserves message version. |
| DeliveryAttempted | A channel send attempt occurs. | AttemptId, NotificationId, channel, provider. | Analytics, Audit. | Tracks provider interaction. |
| NotificationSent | Provider accepts the message. | NotificationId, channel, provider message ID. | Analytics. | Confirms send. |
| NotificationDelivered | Provider confirms delivery where available. | NotificationId, channel, delivered at. | Analytics. | Confirms recipient reach. |
| NotificationFailed | Delivery attempt fails. | NotificationId, channel, failure reason. | Escalation, Analytics. | Enables retry or escalation. |
| NotificationRead | Recipient reads the notification. | NotificationId, recipient, read at. | Analytics, Escalation. | Tracks attention. |
| NotificationAcknowledged | Recipient acknowledges required action. | NotificationId, recipient, acknowledged at. | Source domains, Analytics. | Confirms awareness. |
| NotificationDismissed | Recipient dismisses notification. | NotificationId, recipient, reason. | Analytics. | Tracks user choice. |
| NotificationEscalated | Escalation policy creates escalation. | EscalationId, NotificationId, level, reason, target. | Notification, Analytics. | Protects critical actions. |
| NotificationPreferenceUpdated | Preferences change. | PreferenceId, scope, changed settings. | Notification. | Applies future delivery preferences. |
| CommunicationHistoryRecorded | A communication event is written to history. | HistoryId, notification, event type. | Audit, Analytics. | Maintains traceability. |
Event Flow¶
sequenceDiagram
participant Bid
participant Notification
participant Provider
participant Recipient
participant Analytics
Bid->>Notification: TeamApprovalRequired event
Notification->>Notification: Create notification
Notification->>Provider: Send email/WhatsApp/in-app
Provider-->>Notification: Sent or delivered status
Recipient-->>Notification: Read or acknowledge
Notification-->>Analytics: NotificationAcknowledged
Cross-Domain Rule¶
Notification may emit acknowledgement and delivery outcome events. These events do not automatically mutate source domain facts unless the owning domain consumes the event and applies its own rules.