Easy.Notifications.Infrastructure
1.0.0
dotnet add package Easy.Notifications.Infrastructure --version 1.0.0
NuGet\Install-Package Easy.Notifications.Infrastructure -Version 1.0.0
<PackageReference Include="Easy.Notifications.Infrastructure" Version="1.0.0" />
<PackageVersion Include="Easy.Notifications.Infrastructure" Version="1.0.0" />
<PackageReference Include="Easy.Notifications.Infrastructure" />
paket add Easy.Notifications.Infrastructure --version 1.0.0
#r "nuget: Easy.Notifications.Infrastructure, 1.0.0"
#:package Easy.Notifications.Infrastructure@1.0.0
#addin nuget:?package=Easy.Notifications.Infrastructure&version=1.0.0
#tool nuget:?package=Easy.Notifications.Infrastructure&version=1.0.0
Easy.Notifications.Infrastructure
The core execution engine and provider implementations for the Easy Notification System.
This package contains the "Heavy Lifting" logic of the system. It houses the background processing workers, the priority-based dispatching logic, and the concrete implementations for various notification channels (Email, SMS, Chat).
Key Components
BackgroundNotificationWorker: A hosted service that manages the lifecycle of a notification from the internal queue to the final provider.NotificationDispatcher: The traffic controller that routes incoming payloads into the correctSystem.Threading.Channelsbased on priority.ProviderFactory: Dynamically resolves the correctINotificationProviderbased on the recipient's channel type.CancellationManager: Manages the hybrid (In-memory + Store) cancellation logic to stop pending messages.
Installation
Install via NuGet Package Manager:
Install-Package Easy.Notifications.Infrastructure
Or via .NET CLI:
dotnet add package Easy.Notifications.Infrastructure
Note: This package requires Easy.Notifications.Core for abstractions and models.
Internal Workflow
Ingestion: The infrastructure layer receives a
NotificationPayloadthrough theINotificationService.Queueing: Messages are pushed into one of three internal channels:
Urgent,High, orNormal.Consumption: The
BackgroundNotificationWorkermonitors these channels with a "Priority First" strategy.Resilience: If a provider fails, the infrastructure layer interacts with the
INotificationStore(if registered) to schedule a retry.
Provider Support
This package includes built-in infrastructure for:
Email:
SmtpEmailProviderSMS:
TwilioSmsProvider,VonageSmsProviderChat:
TeamsProvider(MessageCards),SlackProvider(Block Kit),TelegramProvider(Bot API)Real-Time:
SignalRNotificationMonitorhooks
Advanced Configuration
You can customize the worker's behavior via DI:
builder.Services.AddEasyNotifications(options =>
{
// Configure internal channel capacities to prevent memory overflow
options.ChannelCapacity = 10000;
// Set global retry limits
options.MaxRetryAttempts = 3;
});
The Ecosystem
| Package | Role |
|---|---|
Easy.Notifications.Core |
Interfaces and POCO Models (Dependency of Infrastructure). |
Easy.Notifications.Infrastructure |
(This package) Background processing and Provider logic. |
Easy.Notifications.Persistence.EntityFramework |
Database storage for logs and retry state. |
Contributing
Contributions and suggestions are welcome. Please open an issue or submit a pull request.
Contact
For questions, contact us via elmin.alirzayev@gmail.com or GitHub.
License
This project is licensed under the MIT License.
© 2025 Elmin Alirzayev / Easy Code Tools
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net47 is compatible. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Hosting (>= 9.0.7)
- Microsoft.Extensions.Http (>= 9.0.7)
- Microsoft.Extensions.Logging (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- System.Text.Json (>= 10.0.2)
- System.Threading.Channels (>= 9.0.7)
-
.NETFramework 4.8
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Hosting (>= 9.0.7)
- Microsoft.Extensions.Http (>= 9.0.7)
- Microsoft.Extensions.Logging (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- System.Text.Json (>= 10.0.2)
- System.Threading.Channels (>= 9.0.7)
-
.NETStandard 2.1
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Hosting (>= 9.0.7)
- Microsoft.Extensions.Http (>= 9.0.7)
- Microsoft.Extensions.Logging (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- System.Text.Json (>= 10.0.2)
- System.Threading.Channels (>= 9.0.7)
-
net10.0
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 10.0.2)
- Microsoft.Extensions.Hosting (>= 10.0.2)
- Microsoft.Extensions.Http (>= 10.0.2)
- Microsoft.Extensions.Logging (>= 10.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.2)
-
net6.0
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 7.0.0)
- Microsoft.Extensions.Hosting (>= 7.0.0)
- Microsoft.Extensions.Http (>= 7.0.0)
- Microsoft.Extensions.Logging (>= 7.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 7.0.0)
- System.Text.Json (>= 8.0.5)
- System.Threading.Channels (>= 7.0.0)
-
net7.0
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 7.0.0)
- Microsoft.Extensions.Hosting (>= 7.0.0)
- Microsoft.Extensions.Http (>= 7.0.0)
- Microsoft.Extensions.Logging (>= 7.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 7.0.0)
- System.Text.Json (>= 8.0.5)
-
net8.0
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Hosting (>= 9.0.7)
- Microsoft.Extensions.Http (>= 9.0.7)
- Microsoft.Extensions.Logging (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- System.Text.Json (>= 10.0.2)
- System.Threading.Channels (>= 9.0.7)
-
net9.0
- Easy.Notifications.Core (>= 1.0.0)
- Microsoft.Extensions.Caching.Memory (>= 9.0.7)
- Microsoft.Extensions.Hosting (>= 9.0.7)
- Microsoft.Extensions.Http (>= 9.0.7)
- Microsoft.Extensions.Logging (>= 9.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 9.0.8)
- System.Text.Json (>= 10.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Easy.Notifications.Infrastructure:
| Package | Downloads |
|---|---|
|
Easy.Notifications
The core abstractions, models, and interfaces for the Easy.Notifications library. Includes definitions for NotificationPayload, INotificationService, and supported channel types. Install this package if you only need the contracts without the implementation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 194 | 2/6/2026 |
-