IndFusion.Ember 0.1.0

dotnet add package IndFusion.Ember --version 0.1.0
                    
NuGet\Install-Package IndFusion.Ember -Version 0.1.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="IndFusion.Ember" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IndFusion.Ember" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="IndFusion.Ember" />
                    
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 IndFusion.Ember --version 0.1.0
                    
#r "nuget: IndFusion.Ember, 0.1.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.
#:package IndFusion.Ember@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IndFusion.Ember&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=IndFusion.Ember&version=0.1.0
                    
Install as a Cake Tool

๐Ÿ”ฅ IndFusion.Ember

The fusion point where real-time messages ignite and spread across any transport.

NuGet License: MIT


๐ŸŒŸ What is Ember?

IndFusion.Ember is a transport-agnostic real-time communication abstraction that follows Clean Architecture principles. Think of it as a glowing ember spreading through your system:

  • ๐Ÿ”ฅ Messages Ignite - Events and data start flowing
  • ๐Ÿ“ก Propagate & Track - Health monitoring and metrics
  • ๐Ÿ’ก Illuminate & Display - Real-time dashboards and UI updates

Like an ember that spreads warmth and light, Ember spreads real-time updates across any transport layer without coupling your application to a specific technology.


โšก Three Actors Pattern

Every Ember implementation follows the Three Actors Pattern:

Actor Essence Purpose
๐Ÿš€ ExxerHub<T> Something Moving Messages, events, data flows
๐Ÿฉบ ServiceHealth<T> Something Tracking Health metrics, status monitoring
๐Ÿ“Š Dashboard<T> Something Displaying UI dashboards, real-time visualization

๐Ÿš€ Quick Start

Installation

dotnet add package IndFusion.Ember

Basic Usage

// 1. Register Ember services
services.AddSignalRAbstractions();

// 2. Create your hub (something moving)
public class MyHub : ExxerHub<MyData>
{
    public MyHub(ILogger<MyHub> logger) : base(logger) { }
}

// 3. Track health (something tracking)
public class MyService
{
    private readonly IServiceHealth<MyService> _health;

    public MyService(IServiceHealth<MyService> health)
    {
        _health = health;
        await _health.UpdateHealthAsync(HealthStatus.Healthy);
    }
}

// 4. Display dashboard (something displaying)
public class MyDashboard : Dashboard<MyData>
{
    public MyDashboard(ILogger<MyDashboard> logger) : base(logger) { }
}

๐Ÿ”Œ Transport Fusion

Currently Implemented:

  • โœ… SignalR (WebSockets, Server-Sent Events, Long Polling)

Designed For Universal Fusion:

  • ๐Ÿ”„ gRPC Streams
  • ๐ŸŒ Raw WebSockets
  • ๐Ÿ”Œ Raw TCP/UDP
  • โ˜๏ธ Azure Service Bus
  • โ˜๏ธ AWS EventBridge
  • ๐Ÿญ OPC-UA (Industrial IoT)
  • ๐Ÿ“ก MQTT
  • ๐Ÿฐ RabbitMQ

The abstraction layer allows easy transport swapping without changing application code.


๐Ÿ—๏ธ Clean Architecture

Ember follows Hexagonal Architecture principles:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         Your Application Core           โ”‚
โ”‚    (Domain Logic, Use Cases)            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
         โ”‚  IndFusion.Ember โ”‚  โ† Abstraction Layer
         โ”‚   (Interfaces)   โ”‚
         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚             โ”‚             โ”‚
โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”
โ”‚SignalR โ”‚   โ”‚ gRPC   โ”‚   โ”‚ Azure  โ”‚  โ† Plug Any Transport
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Benefits:

  • ๐ŸŽฏ Testable: Mock IExxerHub, IServiceHealth, IDashboard
  • ๐Ÿ”„ Swappable: Change transports without touching business logic
  • ๐Ÿ“ฆ Portable: Use across microservices, monoliths, serverless
  • ๐Ÿ›ก๏ธ Railway-Oriented: Built-in Result<T> pattern for error handling

๐Ÿ’Ž Railway-Oriented Programming

All operations return Result<T> for elegant error handling:

var result = await hub.SendToAllAsync(data, cancellationToken);

if (result.IsSuccess)
{
    // Success path
    logger.LogInformation("Message sent successfully");
}
else
{
    // Failure path - no exceptions thrown
    logger.LogWarning("Failed to send: {Error}", result.Error);
}

No exceptions during normal flow - defensive intelligence built-in.


๐ŸŽฏ Use Cases

Perfect for:

  • ๐Ÿ“Š Real-time Dashboards - Stock tickers, IoT sensors, metrics
  • ๐Ÿฉบ Health Monitoring - Service status, heartbeat tracking
  • ๐Ÿ”” Notifications - User alerts, system events
  • ๐Ÿ“ˆ Live Analytics - Real-time charts, KPI updates
  • ๐ŸŽฎ Multiplayer Games - Player synchronization
  • ๐Ÿ’ฌ Chat Applications - Real-time messaging
  • ๐Ÿญ Industrial IoT - Factory automation, sensor networks

๐Ÿ“š Documentation


๐Ÿค Contributing

Contributions are welcome! Please read our Contributing Guide.


๐Ÿ“„ License

MIT License - see LICENSE for details.


๐Ÿ”ฅ About the Name

Ember represents a glowing piece of fire that spreads warmth and light - just like how real-time messages spread through your distributed system, illuminating dashboards and bringing life to UI components.

IndFusion signifies the Industrial Fusion of different transport technologies into a unified abstraction.


๐Ÿ’ฌ Support


<div align="center">

๐Ÿ”ฅ Let the ember ignite your real-time architecture ๐Ÿ”ฅ

Made with โค๏ธ by Exxerpro Solutions

</div>

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

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 153 11/29/2025