Notifliwy 1.3.0

dotnet add package Notifliwy --version 1.3.0
                    
NuGet\Install-Package Notifliwy -Version 1.3.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Notifliwy" Version="1.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Notifliwy" Version="1.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Notifliwy" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Notifliwy --version 1.3.0
                    
#r "nuget: Notifliwy, 1.3.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Notifliwy&version=1.3.0
                    
Install Notifliwy as a Cake Addin
#tool nuget:?package=Notifliwy&version=1.3.0
                    
Install Notifliwy as a Cake Tool

Notifliwy - Fluent Event Notification Library for .NET

banner


Notifliwy is a powerful .NET library designed to simplify event-driven architecture implementation with a clean, fluent API. It provides end-to-end support for event notifications - from declaration to processing - using an intuitive builder pattern that makes complex workflows easy to configure.


Key Features

  • 🚀 Fluent builder API for seamless configuration

  • 🧩 Modular pipeline components for event processing

  • ⏱️ Built-in support for async processing

  • 📦 Dependency Injection ready

  • 📊 Metrics and diagnostics out of the box

Stages of event processing

eventconnector<event>handler.executor<event>notification.handler<notification, event>condition<notification, event>mapper<notification, event>exporter<notification>

  1. InputPipe<TEvent> - input service, AcceptAsync return IAsyncEnumerable with assigned events

  2. (Internal) NotificationConnector<TEvent> - the main handler and proxy for incoming events. Transmits and manages event handlers

  3. INotificationCondition<TNotification, TEvent> - Add-on element, the service performs the check of the event and here it is decided whether it goes further along the pipeline or not

  4. INotificationMapper<TNotification, TEvent> - Also addable element, conversion service of the received event that has passed all the added checks

  5. INotificaitonExporter<TNotification> - Post send service when an event has been converted into a notification and is ready to be sent across the entire Notifliwy pipeline


Fast start

To add a Notifliwy server, you need to add it via DI. And in the most minimal version, so that it can receive data from the hosted application itself, you need to add the following steps in the builder

//Add server to hosted application in service collection
builder.Services.AddNotifliwyServer(serverBuilder =>
{
    //Assign event to notification for Notifliwy server
    serverBuilder.AddNotification<NeedNotification, InputEvent>(sectorBuilder =>
    {
        sectorBuilder.AddMapper<InputNeedNotificationMapper>(); //Add to notification pipeline
    });
});

//...

public record InputEvent : IEvent;
public record NeedNotification : IEvent;

public class InputNeedNotificationMapper : INotificationMapper<NeedNotification, InputEvent>
{
    /// <inheritdoc />
    public ValueTask<NeedNotification> ConvertAsync(
        InputEvent inputEvent, 
        CancellationToken cancellationToken = default)
    {
        return ValueTask.FromResult(new NeedNotification
        {
            //... cast event to notification
        });
    }
}

Providers

Notifliwy provides the main providers for the internal event pipeline.

Provider Version Description
Notifliwy.Provider.MassTransit.Kafka 1.2.0 Notifliwy Consumers provider for MassTransit/Kafka

Additional package

Additional libraries adding functionality to the Notifliwy server or related logic with business ownership.

Package Version Description
Synaptix.MassTransit.Kafka.Protobuf 2.1.0 Kafka/MassTransit protobuf serializer/deserializer
Notifliwy.OpenTelemetry.Instrumentation 1.2.0 OpenTelemetry instruments extensions for Notifliwy

Project

This project comes with an GNU3.0. Contact the .stbl group.

Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Notifliwy:

Package Downloads
Notifliwy.OpenTelemetry.Instrumentation

OpenTelemetry diagnostic instrument extensions

Notifliwy.Provider.MassTransit.Kafka

MassTransit Kafka consumer integration with Notifliwy input pipe

GitHub repositories

This package is not used by any popular GitHub repositories.