Skip to main content

Notification Project Structure

Summary

The Notification Service is a single ASP.NET Core project. Its folders map cleanly to responsibilities: API surface, application orchestration, delivery channels, domain model, persistence, messaging and template seeding.

Folder layout

Responsibilities

Folder / fileResponsibility (verified)
Program.csComposition root: DI, migration/seed, endpoint mapping
Api/NotificationEndpoints.csMinimal API inbox, template, admin, diagnostics and test endpoints
Application/Abstractions.csInterfaces and records (INotificationDispatcher, ITemplateEngine, IPreferenceEvaluator, IChannelSender, IChannelSenderRegistry, intents, results)
Application/NotificationDispatcher.csEnd-to-end event orchestration
Application/EventNotificationResolver.csEvent-to-intent mapping per supported event type
Application/TemplateEngine.csTemplate resolution and {{Variable}} substitution
Application/PreferenceEvaluator.csOpt-out preference evaluation
Application/RetryPolicy.csBounded exponential-backoff schedule
Application/NotificationOptions.csBound configuration model
Application/NotificationTelemetry.csDispatch ActivitySource
Channels/IChannelSender implementations and the ChannelSenderRegistry
Domain/NotificationEntities.csEntities and constant classes (channels, statuses, stages)
Infrastructure/NotificationDbContext.csEF Core mapping and design-time factory
Infrastructure/Migrations/InitialNotificationSchema migration and snapshot
Messaging/Event consumer and envelope record
Seed/DefaultTemplateSeeder.csBuilt-in global template inventory

Project references

The .csproj references only shared-kernel and contracts, and packages for ASP.NET Core OpenAPI, EF Core, Npgsql, RabbitMQ.Client and Swashbuckle.

Requires Confirmation

Whether additional projects (for example, a dedicated test project) belong to the same solution requires confirmation; none reference this service in the reviewed source.

Source References

  • microservices/src/notification-service/notification-service.csproj
  • microservices/src/notification-service/Api/NotificationEndpoints.cs
  • microservices/src/notification-service/Domain/NotificationEntities.cs
  • microservices/src/notification-service/Infrastructure/NotificationDbContext.cs

See Also

Keywords

Project structure, folders, solution layout, responsibilities.

Revision Information

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