Appearance
Notification System Documentation
This section documents the complete Microtec notification system from developer integration to service internals and operations.
The scope includes:
InfrastructureServices/NotificationsMicrotec.Notifications.ContractsMicrotec.Notifications.Client
Reading Path
| Level | Document | Use it when |
|---|---|---|
| System | System overview | You need the mental model and component boundaries. |
| Integration | Quick start and client integration | You are adding notifications to another service. |
| Contracts | Contracts and payloads | You need request shapes, enums, metadata keys, or compatibility rules. |
| Service | Service architecture | You are changing the Notification service itself. |
| API | API reference | You need direct HTTP endpoints or client proxy endpoints. |
| Configuration | Channel configuration and credentials | You are setting up providers, credentials, tenants, or source systems. |
| Runtime | Flow, persistence, and retry | You are debugging delivery status, notification center data, or retry behavior. |
| Channels | Channel guides | You are working with Email, SMS, Push, WhatsApp, or Notification Center behavior. |
| Operations | Operations, testing, and best practices | You are running, testing, securing, or evolving the system. |
| Visual | Visual reference | You want diagrams for architecture, flow, persistence, states, and operations. |
Source Map
| Area | Path |
|---|---|
| Notification service API | C:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Apis |
| Application layer | C:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Application |
| Domain layer | C:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Domain |
| Infrastructure layer | C:\Users\Ahmed Ismaeel\source\repos\InfrastructureServices\Notifications\Notification.Infrastructure |
| Client package | C:\Users\Ahmed Ismaeel\source\repos\Microtec Packages\Shared\Microtec.Notifications.Client |
| Contracts package | C:\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
INotificationsClientfor 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.