Skip to content
Updated Jun 9, 2026

Notifications

The notifications service is a thin adapter in front of Novu, the canonical notifications provider. Every email, SMS, push and in-app notification flows through Novu workflows. Templates, channel routing, digesting and quiet-hours all live there, not here. This service holds the platform-side preference and delivery records.

Field reference: full columns, types and nullability live in the catalog: glossary terms NotificationPreference, NotificationLog. This page is the narrative.

What this service owns

  • NotificationPreference: one row per member (party_locator is UNIQUE): the preferred_channel (free text, default EMAIL) and the delivery email/phone.
  • NotificationLog: a delivery record per outbound notification: the source event_id (UNIQUE, the idempotency key: one log per event), channel, status, subject/body, failure_reason and attempt_count. This is the historical/adapter record; live routing is Novu's.

How it fits

Callers trigger Novu workflows (POST /v1/events/trigger) with a flat payload; Novu owns the per-channel content and branching. Subscribers are identified by party_locator. The Go olly-notifications service remains the contract other services call until they move to Novu directly.

Caveats

  • preferred_channel, channel and status are free TEXT (no DB CHECK).
  • Per-event opt-outs are not in this service; they are Novu subscriber preferences. The plural NotificationPreferences concept (a richer per-event model) is aspirational; the implemented entity is the singular NotificationPreference.

Olly Health Insurance Platform