Skip to main content

Notification Configuration Reference

Summary

Configuration binds from three sections plus one environment variable. This page documents option names, defaults and effects. No credential, host or connection value from any settings file is reproduced here.

Audience

DevOps engineers, engineers, support, architects and QA.

Reference Content

The verified reference material for this topic is set out in the sections below.

Notification section — topology

OptionDefaultEffect
Queue nameService-specific queue nameThe durable queue the consumer declares and binds
Dead-letter exchangePlatform dead-letter nameUnreferenced — see dead-letter processing
Dead-letter queueService-specific nameUnreferenced
Prefetch count5Deliveries outstanding at once; drives concurrency

Notification section — reliability

OptionDefaultEffect
Retry maximum attempts3Bounded delivery attempts per message; floored at 1
Retry base delay200 msDelay before attempt two
Retry backoff factor2.0Multiplier applied per subsequent attempt
Stale-after hours168Events older than this are ignored; 0 disables the check
Seed default templatestrueSeeds built-in global templates at startup when missing

Notification section — channels

OptionDefaultEffect
Event channels mapEmptyPer-event-type channel override; a non-empty array replaces the resolver default. Lookup is case-insensitive and values are normalised
Email providerconsoleSelects the email sender: smtp, noop, or console for any other value
Email from address and from namePlaceholder valuesSender identity used by the email sender
SMTP host, port, username, password, SSL flag, timeoutPort 587, SSL on, 10-second timeoutUsed only when the SMTP provider is selected
SMS providernoopPlaceholder only — no real provider integration
WhatsApp providernoopPlaceholder only — no real provider integration

The provider selection is evaluated once at startup and registers a single sender. Changing it requires a restart.

RabbitMq section

Host, port, username, password, virtual host and exchange name. The exchange name is the shared platform integration-events exchange.

Observability section

OptionEffect
OTLP endpointWhen set to a valid absolute URI, adds an OTLP trace exporter
Enable console exporterWhen true, adds a console trace exporter
Seq URLRead by nothing — present in settings, referenced nowhere in the reviewed source

Connection string

One named connection string identifies the notification database. Its value is not reproduced here.

Environment variable

VariableEffect
Migration skip flagWhen set to the string true, skips both migration and seeding at startup

This is the only environment variable that alters service behavior in the reviewed source. Note that it couples two unrelated concerns.

Public-safety note

The committed development settings file contains local placeholder credentials for the database and the broker, and empty SMTP credentials. Those values are development defaults and are deliberately not reproduced in this documentation. Production values are expected to be supplied by the deployment environment; how they are supplied requires confirmation.

Verified absence

There is no feature-flag system, no runtime configuration reload, no options-change listener, no per-tenant configuration and no configuration validation on startup. An invalid value — for example an unrecognised email provider — silently falls back to the default rather than failing fast.

Classification

Implemented.

Requires confirmation

Production secret management, and whether the unread Seq setting should be wired or removed, require confirmation.

See Also

Keywords

  • Notification database
  • Configuration
  • Draft database documentation

Source References

  • microservices/src/notification-service/Application/NotificationOptions.cs
  • microservices/src/notification-service/appsettings.json
  • microservices/src/shared-kernel/Messaging/RabbitMqOptions.cs
  • microservices/src/shared-kernel/Extensions/ObservabilityExtensions.cs
  • microservices/src/notification-service/Program.cs

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-21
  • Review cycle: Quarterly