Skip to content

Notification System Documentation

This section documents the complete Microtec notification system from developer integration to service internals and operations.

The scope includes:

  • InfrastructureServices/Notifications
  • Microtec.Notifications.Contracts
  • Microtec.Notifications.Client

Reading Path

LevelDocumentUse it when
SystemSystem overviewYou need the mental model and component boundaries.
IntegrationQuick start and client integrationYou are adding notifications to another service.
ContractsContracts and payloadsYou need request shapes, enums, metadata keys, or compatibility rules.
ServiceService architectureYou are changing the Notification service itself.
APIAPI referenceYou need direct HTTP endpoints or client proxy endpoints.
ConfigurationChannel configuration and credentialsYou are setting up providers, credentials, tenants, or source systems.
RuntimeFlow, persistence, and retryYou are debugging delivery status, notification center data, or retry behavior.
ChannelsChannel guidesYou are working with Email, SMS, Push, WhatsApp, or Notification Center behavior.
OperationsOperations, testing, and best practicesYou are running, testing, securing, or evolving the system.
VisualVisual referenceYou want diagrams for architecture, flow, persistence, states, and operations.

Source Map

AreaPath
Notification service APIC:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Apis
Application layerC:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Application
Domain layerC:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Domain
Infrastructure layerC:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Infrastructure
Client packageC:\Users\Ahmed Ismaeel\source\repos\Microtec Packages\Shared\Microtec.Notifications.Client
Contracts packageC:\Users\Ahmed Ismaeel\source\repos\Microtec Packages\Shared\Microtec.Notifications.Contracts

Current Capabilities

The system currently supports:

  • Email through SMTP and Azure Graph.
  • SMS through a generic HTTP SMS provider.
  • Push notifications through FCM.
  • WhatsApp template messages through Msegat/T2.
  • Notification Center query, unread count, mark-read, delete, and admin views.
  • Device token registration and validation.
  • Provider credential management.
  • WhatsApp template provisioning and approval tracking.
  • HTTP delivery and queue delivery through MassTransit.

Visual Map

Engineering Principles

Use these principles when integrating with or changing the notification system:

  • Prefer the shared contracts package over local duplicate DTOs.
  • Keep payloads backward compatible because they are used over HTTP, queues, and persisted JSON.
  • Use INotificationsClient for application code instead of calling notification endpoints directly.
  • Keep provider credentials out of source-controlled appsettings files.
  • Persist enough data to debug delivery while avoiding secret payloads.
  • Treat retries as new notification attempts linked by operational context, not as hidden mutation of the original request.
  • Add providers behind channel factories and keep channel orchestration stable.

Internal Documentation — Microtec