JKang.EventBus 1.1.0

Install-Package JKang.EventBus -Version 1.1.0
dotnet add package JKang.EventBus --version 1.1.0
<PackageReference Include="JKang.EventBus" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JKang.EventBus --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JKang.EventBus, 1.1.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install JKang.EventBus as a Cake Addin
#addin nuget:?package=JKang.EventBus&version=1.1.0

// Install JKang.EventBus as a Cake Tool
#tool nuget:?package=JKang.EventBus&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.


.NET Core event bus implementation supporting:

  • In-memory event dispatching (publishing and subscription)
  • publishing event to Amazon SNS

NuGet packages

Quick start:

  1. Create a console application with the following NuGet packages installed:
> Install-Package Microsoft.Extensions.DependencyInjection
> Install-Package JKang.EventBus
  1. Create an event class
    public class MyEvent
        public string Message { get; set; }
  1. Optionally implement one or multiple handlers subscribing to the event
    class MyEventHandler : IEventHandler<MyEvent>
        public Task HandleEventAsync(MyEvent @event)
            Console.WriteLine($"Received message '{@event.Message}'");
            return Task.CompletedTask;
  1. Configure and register event bus using Dependency Injection
    static void Main(string[] args)
        IServiceCollection services = new ServiceCollection();

        services.AddEventBus(builder =>
            builder.AddInMemoryEventBus(subscriber =>
                subscriber.Subscribe<MyEvent, MyEventHandler>();
                //subscriber.SubscribeAllHandledEvents<MyEventHandler>(); // other way
  1. Publish an event
    IServiceProvider serviceProvider = services.BuildServiceProvider();
    using (IServiceScope scope = serviceProvider.CreateScope())
        IEventPublisher eventPublisher = scope.ServiceProvider.GetRequiredService<IEventPublisher>();
        eventPublisher.PublishEventAsync(new MyEvent { Message = "Hello, event bus!" }).Wait();

Publish event to Amazon Simple Notification Service (SNS)

  1. Install NuGet package JKang.EventBus.AmazonSns

  2. Configure publishing events to AWS SNS

        services.AddEventBus(builder =>
                //.AddInMemoryEventBus() // uncomment to keep using in-memory event bus in the same time
				.PublishToAmazonSns(x => x.Region = "eu-west-3");
  1. Optionally It's possible to customize AWS SNS topic name using annotation
    public class MyEvent
    { }

Any contributions or comments are welcome!

NuGet packages (1)

Showing the top 1 NuGet packages that depend on JKang.EventBus:

Package Downloads

Content management system

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 18,253 11/21/2018
1.0.0 421 11/15/2018