JKang.EventBus.Abstractions 1.1.0

Install-Package JKang.EventBus.Abstractions -Version 1.1.0
dotnet add package JKang.EventBus.Abstractions --version 1.1.0
<PackageReference Include="JKang.EventBus.Abstractions" 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.Abstractions --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JKang.EventBus.Abstractions, 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.Abstractions as a Cake Addin
#addin nuget:?package=JKang.EventBus.Abstractions&version=1.1.0

// Install JKang.EventBus.Abstractions as a Cake Tool
#tool nuget:?package=JKang.EventBus.Abstractions&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 (3)

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

Package Downloads

.NET Core ultra lightweight event bus implementation


.NET Core ultra lightweight event bus implementation


.NET Core ultra lightweight event bus implementation

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 17,975 11/21/2018
1.0.0 2,468 11/15/2018