JKang.EventBus 1.1.0

.NET Core ultra lightweight event bus implementation

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.

JKang.EventBus

.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 =>
        {
            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
    [AmazonSnsTopic("my-event")]
    public class MyEvent
    { }

Any contributions or comments are welcome!

JKang.EventBus

.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 =>
        {
            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
    [AmazonSnsTopic("my-event")]
    public class MyEvent
    { }

Any contributions or comments are welcome!

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.1.0 9,404 11/21/2018
1.0.0 226 11/15/2018