EventBusConnector 0.2.1

dotnet add package EventBusConnector --version 0.2.1
                    
NuGet\Install-Package EventBusConnector -Version 0.2.1
                    
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="EventBusConnector" Version="0.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EventBusConnector" Version="0.2.1" />
                    
Directory.Packages.props
<PackageReference Include="EventBusConnector" />
                    
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 EventBusConnector --version 0.2.1
                    
#r "nuget: EventBusConnector, 0.2.1"
                    
#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 EventBusConnector@0.2.1
                    
#: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=EventBusConnector&version=0.2.1
                    
Install as a Cake Addin
#tool nuget:?package=EventBusConnector&version=0.2.1
                    
Install as a Cake Tool

EventBusConnector

Build Status codecov CodeFactor GitHub

EventBusConnector: Nuget Nuget

EventBusConnector.Kafka: Nuget Nuget

Represents a wrapper for various Event Bus streaming clients like Kafka.

Features

  • default implementation and interfaces for generic wrapper client agnostic of the Event Bus products;
  • modular extensions for dependency injection registration;
  • fast replace of actual event bus clients libraries.

Current supported event buses

  1. Kafka
Upcoming
  • RabbitMQ
  • N.A.T.S.

Examples

D.I. registration sample

// this adds the IEventBus default implementation
services.AddEventBus();
// this adds the Kafka Connectors
services.AddKafka(
	producerOptions => 
	{
		producerOptions.BootstrapServers = "localhost:9092";
	},
	consumerOptions => 
	{
		consumerOptions.BootstrapServers = "localhost:9092";
        consumerOptions.GroupId = "test-consumer";
        consumerOptions.EnableAutoCommit = true;
	}
);

Basic Usage example

We demo some of the functionalities using one ExampleEvent class and one ExampleEventHandler class.

public class ExampleEvent
{
    public Guid Id { get; set; }
    public string Name { get; set; }
}

public class ExampleEventHandler : IEventHandler<ExampleEvent>
{
	public async Task HandleAsync(ExampleEvent @event)
	{
	    // just for demo is used Task.Run
	    // this should be async database calls or other cases
	    await Task.Run(() =>
	    {
	        Console.WriteLine(JsonConvert.SerializeObject(@event));
	    });
	}
}
Subscribe
public class ExampleService : IHostedService
{
    private readonly IEventBus _eventBus;

    public ExampleService(IEventBus eventBus)
    {
        _eventBus = eventBus;
    }

    public async Task StartAsync(CancellationToken cancellationToken)
    {
        // generic event handler
        await _eventBus.SubscribeAsync(new ExampleEventHandler());

        // specify subject name
        await _eventBus.SubscribeAsync(new ExampleEventHandler(),
         "test-subject");
    }
}
Publish
public class ExampleConsumerService
{
    private readonly IEventBus _eventBus;

    public ExampleConsumerService(IEventBus eventBus)
    {
        _eventBus = eventBus;
    }

    public async Task SomeMethod()
    {
        // event class name as subject
        await _eventBus.PublishAsync(new ExampleEvent {Id = Guid.NewGuid(), Name = "test"});

        // customer subject
        await _eventBus.PublishAsync(new ExampleEvent {Id = Guid.NewGuid(), Name = "test"}, "test-subject");
    }
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 was computed.  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 was computed.  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.  net10.0 was computed.  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 netcoreapp2.2 is compatible.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on EventBusConnector:

Package Downloads
EventBusConnector.Kafka

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.1 981 9/15/2019
0.2.0 828 9/14/2019
0.1.0 862 9/11/2019