IntegrationEvents is a library that provides a simple way to implement the Integration Events pattern.
Name | Version | Downloads |
---|---|---|
IntegrationEvents.Abstractions | ||
IntegrationEvents.RabbitMq |
Add following nuget reference in business project:
PM> Install-Package IntegrationEvents.Abstractions
And add following nuget reference in integration project:
PM> Install-Package IntegrationEvents.RabbitMq
First of all, you need to create a class that derived from the IntegrationEvent
class.
public class OrderCreatedIntegrationEvent : IntegrationEvent
{
public OrderCreatedIntegrationEvent(Guid orderId, string orderName)
{
OrderId = orderId;
OrderName = orderName;
}
public Guid OrderId { get; }
public string OrderName { get; }
}
Then, you need to create a class that derived from the IntegrationEventHandler
class.
public class OrderCreatedIntegrationEventHandler : IIntegrationEventHandler<OrderCreatedIntegrationEvent>
{
public override Task Handle(OrderCreatedIntegrationEvent @event)
{
}
}
Finally, you need to register the IntegrationEventHandler
class in the IServiceCollection
.
services.AddIntegrationEventBus(builder =>
{
builder.AddIntegrationEventsWithRabbitMq();
builder.AddIntegrationEventHandler<OrderCreatedIntegrationEventHandler>();
});
Ok! Now you can publish the IntegrationEvent
class in the business project.
var integrationEventBus = serviceProvider.GetRequiredService<IIntegrationEventBus>();
await integrationEventBus.PublishAsync(new OrderCreatedIntegrationEvent(Guid.NewGuid(), "OrderName"));
Leave a comment on GitHub if you have any questions or suggestions.
Turn on the star if you like this project.
This project is licensed under the MIT License