Skip to main content

Notification Technical Documentation

Audience

Developers, QA engineers, support engineers, DevOps engineers, security engineers, solution architects and implementation partners.

Overview

This section describes the verified Notification Service implementation — an extracted .NET 8 Minimal API microservice that consumes integration events, resolves tenant-aware templates and delivers messages across in-app, email and placeholder channels — together with its shared-kernel, persistence, messaging and gateway boundaries. Endpoint-by-endpoint request/response contracts are reserved for the API epic.

Summary

Notification is a Transitional .NET 8 Minimal API service. A single application service — NotificationDispatcher — orchestrates each consumed event end to end: idempotency, staleness, recipient resolution, per-channel preference evaluation, template rendering, message creation, bounded-retry delivery and an append-only audit trail. A BackgroundService consumer subscribes to the RabbitMQ integration-events exchange; delivery is fanned out to per-channel IChannelSender implementations resolved through a registry.

No separate NotificationEngine, NotificationProcessor, NotificationWorker, NotificationDispatcher worker process, RetryProcessor, OutboxRelay or repository layer exists. Orchestration is implemented by NotificationDispatcher using NotificationDbContext directly; retry is an in-process bounded loop driven by RetryPolicy.

Technical scope

  • Runtime composition, dependency injection and startup migration/seeding.
  • The dispatch, delivery and retry pipelines.
  • Channel senders (in-app, email console/smtp/noop, SMS and WhatsApp placeholders) and the sender registry.
  • Versioned per-tenant template resolution and rendering.
  • The event consumer, envelope parsing and background execution.
  • Persistence model, tenant scoping, logging, tracing and the audit trail.
  • Gateway compatibility toggle, legacy coexistence and smoke coverage.

Documentation map

Start with architecture, runtime composition, project structure and layer dependencies. Continue with the notification service anatomy, channel architecture, template architecture, processing pipeline, delivery pipeline, retry pipeline and background processing.

Engineering references cover the application layer, commands, queries, repositories, validation, security, tenant isolation, observability, compatibility, testing, limitations and source map.

Requires Confirmation

Production channel providers (SMTP host, SMS/WhatsApp gateways), broker topology and dead-letter enablement, upstream access enforcement, retention of audit and message records, and ownership of the canonical implementation versus the legacy monolith path require confirmation.

Source References

  • microservices/src/notification-service/Program.cs
  • microservices/src/notification-service/Application/NotificationDispatcher.cs
  • microservices/src/notification-service/Application/EventNotificationResolver.cs
  • microservices/src/notification-service/Channels/ChannelSenderRegistry.cs
  • microservices/src/notification-service/Infrastructure/NotificationDbContext.cs

See Also

Keywords

Notification architecture, Notification Service, event-driven, delivery pipeline, technical foundation.

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-21
  • Next review: 2026-10-21