System β€” Notifications

Multi-channel notification engine

Deliver the right message to the right person via the right channel. Email, SMS, Push, and In-App notifications with template variables, priority routing, retry logic, and per-user preferences.

Email SMS Push In-App Template engine

Delivery channels

Each notification event can route to one or multiple channels depending on priority and user preferences. Channels are independently configurable.

πŸ“§

Email

Rich HTML templates, attachments, configurable SMTP or provider integration.

πŸ“±

SMS

Short plain-text messages for critical alerts. Provider-agnostic gateway integration.

πŸ””

Push

Mobile and browser push via FCM/APNS. Deep-link to the relevant resource in-app.

πŸ’¬

In-App

Real-time notification bell in the UI. Unread counter, mark-all-read, persistent history.

Notification Center
Notification Template Editor

Template engine & priorities

Notifications are defined by templates with context variables. Routing and urgency are controlled by priority levels.

Template engine

Every notification type has a template per channel. Templates use {{variable}} syntax bound to the triggering event's context.

Subject: Order #{{order_id}} approved
Hi {{user_name}},
Amount: {{amount}} {{currency}}

Priority levels

Four priority tiers control channel selection and delivery guarantees. Higher priorities bypass user mute preferences.

  • Critical β€” all channels, bypass mute
  • High β€” preferred channel + In-App
  • Normal β€” user preferred channel only
  • Low β€” In-App only, batched

Reliable delivery & user preferences

Built-in retry logic guarantees delivery even on transient failures. Users control their own notification experience without affecting critical alerts.

Retry logic

Failed deliveries are retried with exponential back-off. After max retries, the event is moved to a dead-letter queue for manual inspection.

  • Exponential back-off on failure
  • Dead-letter queue after max retries
  • Delivery status per channel tracked

User preferences

Each user can opt in or out of notification types per channel. Preferences are respected for Normal and Low priority; Critical always delivers.

  • Opt-in/out per event type
  • Per-channel preferences
  • Quiet hours support