Introduction
Event Framework is a framework for creating, receiving, sending and handling CloudEvents in .NET.
Introduction
CloudEvents are a specification which describe event data in a common way. Event Framework is a framework for creating, receiving, sending and handling CloudEvents in .NET.
Event Framework is available for .NET Core 3.1. Some parts of it are available as .NET Standard 2.0 libraries. The sweet spot for using Event Framework is an ASP.NET Core 3.1 based application.
Event Framework is part of the Weik.io platform. Weik.io provides open source integration, eventing and automation frameworks for .NET applications. Event Framework is the "eventing" part of the Weik.io platform.
Core Features
The core features of the Event Framework are:
- Create CloudEvents from .NET objects
- Send and receive CloudEvents
- Handle CloudEvents
- Monitor and automatically publish CloudEvents
Each of these these core features are available as separate Nuget packages. The following sections describe these core features in more detail.
CloudEvent Creation
Use Event Framework to create CloudEvents from .NET objects. Event Framework can convert a single object or a collection of objects:
services.AddEventFramework()
.AddCloudEventCreator();
...
var cloudEvent = _cloudEventCreator.CreateCloudEvent(obj);
Configuration can be used to define the event's subject, topic and other information.
View the quick start of using Event Framework to create CloudEvents or browse through the full documentation.
CloudEvent Gateway
Use Event Framework to host CloudEvents Gateway. Gateways allow Event Framework to receive and to send CloudEvents:
services.AddEventFramework()
.AddHttpGateway();
Event Framework supports the following types of gateways:
- Local (in-memory)
- HTTP
- Azure Service Bus
Single application can contain multiple gateways, so it is possible for example to receive messages through Azure Service Bus and through HTTP web requests.
View the quick start of using Event Framework gateways to send and to receive CloudEvents or browse through the full documentation.
CloudEvent Aggregator
Use Event Framework to handle CloudEvents. CloudEvent Aggregator allows your application to handle CloudEvents. With the event aggregator your application can handle different types of events through handlers:
services.AddEventFramework()
.AddHandler<FileCreatedHandler>();
Multiple handlers can work with a single CloudEvent and your application can handle messages coming from outside of your system or from inside.
View the quick start of creating CloudEvent handler or browse through the full documentation.
CloudEvent Sources
Use Event Framework Sources to watch and to publish CloudEvents based on changes happening in other systems. Event source is an ideal solution for a scenario where you want to track changes in other systems, for example in an external database or in CosmosDB:
services.AddEventFramework()
.AddSource<FileEventSource>(source =>
{
source.Folder = @"c:\temp";
source.Filter = "*.exe";
})
Add and configure Event source into your application and then use handlers to react to the changes. Or just publish the CloudEvents into an another gateway.
Use plugins to add different CloudEvent sources easily.
View the quick start of using a CloudEvent source or browse through the full documentation.
Source code
Source code for Event Framework is available from GitHub.
Support
Commercial support for Event Framework is available.
License
Event Framework is available as an open source, MIT-licensed project.