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.csmicroservices/src/notification-service/Application/NotificationDispatcher.csmicroservices/src/notification-service/Application/EventNotificationResolver.csmicroservices/src/notification-service/Channels/ChannelSenderRegistry.csmicroservices/src/notification-service/Infrastructure/NotificationDbContext.cs
Related Articles
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