Notification Delivery Workflow

Summary

Notification delivery is the provider-facing part of communication. It adapts internal message intent to email, Microsoft Graph, Teams destinations, and Postmark delivery while keeping test jobs and provider clients explicit.

Reader Question

How does an internal communication request become a provider-backed delivery without leaking provider mechanics into domain workflows?

Surface Or Workflow

Engineers enter through notification services, provider integration clients, test email jobs, Graph email jobs, Teams destination sync, and the notification domain doc. Operators see delivery outcomes indirectly through sent messages, Teams destinations, or job evidence.

Lifecycle

A domain workflow or scheduled job builds message intent. Notification services choose the delivery capability. Provider adapters send through Postmark or Microsoft Graph, or synchronize Teams destinations. Test jobs verify provider configuration and delivery paths without turning every domain workflow into a provider client.

Child Threads

Implementation Boundaries

Notification services live under services/notifications; jobs under jobs/notifications; provider adapters under integrations/ext_postmark and integrations/ext_microsoft; Teams source models under services/lkci_lakehouse/models/sources/microsoft/teams.py.

Tradeoffs

Dedicated test and sync jobs may look operationally small, but they keep delivery configuration observable and separate from domain logic.

Visual

The current visual is a graph neighborhood. The intended visual is a delivery sequence from message intent to notification service, provider adapter, send or destination sync, result, and job evidence.

Source Evidence

  • services/notifications
  • jobs/notifications
  • jobs/notifications/test_email/run.py
  • jobs/notifications/test_graph_email/run.py
  • jobs/notifications/sync_teams_destinations/run.py
  • integrations/ext_postmark
  • integrations/ext_microsoft/email.py
  • integrations/ext_microsoft/teams.py
  • services/lkci_lakehouse/models/sources/microsoft/teams.py
  • docs/domains/notifications.md