EventHighway.EventHandlers
2.2.0
dotnet add package EventHighway.EventHandlers --version 2.2.0
NuGet\Install-Package EventHighway.EventHandlers -Version 2.2.0
<PackageReference Include="EventHighway.EventHandlers" Version="2.2.0" />
<PackageVersion Include="EventHighway.EventHandlers" Version="2.2.0" />
<PackageReference Include="EventHighway.EventHandlers" />
paket add EventHighway.EventHandlers --version 2.2.0
#r "nuget: EventHighway.EventHandlers, 2.2.0"
#:package EventHighway.EventHandlers@2.2.0
#addin nuget:?package=EventHighway.EventHandlers&version=2.2.0
#tool nuget:?package=EventHighway.EventHandlers&version=2.2.0

0 - EventHighway.EventHandlers
EventHighway.EventHandlers provides ready-made IEventHandler implementations for EventHighway — a Standard-Compliant .NET library for event-driven programming. Instead of implementing the IEventHandler contract yourself, use the handlers in this package and plug in your own logic.
1 - How It Works
1.1 - DelegateEventHandler
DelegateEventHandler wraps any delegate of the shape Func<string, CancellationToken, ValueTask<EventHandlerResult>> in a fully Standard-compliant event handler — validation, exception mapping and categorization are all handled for you:
IEventHandler handler = new DelegateEventHandler(
someStableHandlerId,
(content, cancellationToken) => ValueTask.FromResult(
new EventHandlerResult { IsSuccess = true, ResponseCode = "200" }),
name: "Students Handler");
eventHighway.RegisterEventHandler(handler);
- Id — a stable
Guididentifying the handler; event listeners subscribe to it by thisHandlerId, so keep it constant across restarts and deployments. - handler — your delegate; it receives the raw event content and a cancellation token, and returns an
EventHandlerResult. - name — optional; defaults to
DelegateEventHandler. Every handler registered with a client must have a unique name, so supply one when registering more than one delegate handler.
Exceptions thrown by your delegate are caught and re-thrown as one of the marker-interface exceptions EventHighway uses to categorize failures in its delivery records:
- DelegateEventHandlerValidationException.cs
- DelegateEventHandlerDependencyException.cs
- DelegateEventHandlerServiceException.cs
1.2 - Packaging Your Delegate as a Client Library
Your delegate can live directly in your domain, or ship as a small per-integration satellite library that exposes a delegate-compatible client — a class with a method matching the delegate signature above. The consuming application then wires that method into a DelegateEventHandler, keeping the handler identity (Id and name) on the application side:
services.AddJoesRestApiDelegateClient(configuration);
// later, when registering handlers:
IEventHandler handler = new DelegateEventHandler(
joesHandlerId,
joesRestApiDelegateClient.PostToJoesRestApiAsync,
name: "Joes REST API");
See EventHighway.EventHandlers.Delegates.JoesRestApi for a complete sample of the packaged pattern.
2 - Installation
dotnet add package EventHighway.EventHandlers
3 - Related Packages & Projects
| Package | Description |
|---|---|
| EventHighway | The core event-driven engine (NuGet) |
| EventHighway.Abstractions | The IEventHandler and IStorageBrokerProvider contracts this package implements (NuGet) |
| EventHighway.SqlServer | SQL Server storage provider (NuGet) |
| EventHighway.PostgreSql | PostgreSQL storage provider (NuGet) |
4 - Standard-Compliance
This library was built according to The Standard. The library follows engineering principles, patterns and tooling as recommended by The Standard.
This library is also a community effort which involved many nights of pair-programming, test-driven development and in-depth exploration research and design discussions.
5 - Standard-Promise
The most important fulfillment aspect in a Standard compliant system is aimed towards contributing to people, its evolution, and principles. An organization that systematically honors an environment of learning, training, and sharing knowledge is an organization that learns from the past, makes calculated risks for the future, and brings everyone within it up to speed on the current state of things as honestly, rapidly, and efficiently as possible.
We believe that everyone has the right to privacy, and will never do anything that could violate that right. We are committed to writing ethical and responsible software, and will always strive to use our skills, coding, and systems for the good. We believe that these beliefs will help to ensure that our software(s) are safe and secure and that it will never be used to harm or collect personal data for malicious purposes.
The Standard Community as a promise to you is in upholding these values.
6 - Important Notice and Acknowledgements
A special thanks to all the community members, and the following dedicated engineers for their hard work and dedication to this project.
Mr. Hassan Habib
Mr. Christo du Toit
Mr.Ahmad Salim
Mr.Greg Hays
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EventHighway.Abstractions (>= 2.2.0)
- RESTFulSense (>= 3.2.0)
- Xeption (>= 2.9.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.0 | 83 | 7/18/2026 |
Ready-made IEventHandler implementations for EventHighway V2:
* Delegate-based handlers — invoke in-process delegates directly, bypassing HTTP entirely.