Skip to main content
Version: v1.2.4

Renamed: This project was formerly called Deveel Events. As of 23 May 2026, the NuGet packages have been renamed from Deveel.Events.* to Hermodr.*. The old packages remain published and will be deprecated.

Packages

The framework is split into focused NuGet packages so you only take what you need.

Core packages

PackageDescription
Hermodr.AnnotationsAttributes for describing event metadata on your data classes
Hermodr.PublisherCore publisher infrastructure (EventPublisher, EventPublisherBuilder, DI helpers)

Channel packages

PackageDescription
Hermodr.Publisher.AzureServiceBusPublish events to an Azure Service Bus queue or topic
Hermodr.Publisher.RabbitMqPublish events to a RabbitMQ exchange
Hermodr.Publisher.MassTransitPublish events through a MassTransit bus
Hermodr.Publisher.WebhookDeliver events to HTTP webhook endpoints
Hermodr.Publisher.OutboxPersist events to a transactional outbox for later relay
Hermodr.Publisher.Outbox.EntityFrameworkEntity Framework Core repository and helpers for the outbox channel
Hermodr.Amqp.AnnotationsAMQP-specific attributes (exchange name, routing key)

Subscriptions package

PackageDescription
Hermodr.SubscriptionsIn-process event subscription registry and dispatcher

Observability package

PackageDescription
Hermodr.Publisher.OpenTelemetryDistributed tracing with W3C trace context propagation via CloudEvents extensions

Schema packages

PackageDescription
Hermodr.SchemaCore schema model, fluent builder, JSON writer, and schema validation
Hermodr.Schema.YamlExport an event schema as a YAML document
Hermodr.Schema.AsyncApiExport schemas as an AsyncAPI 2.x document (JSON or YAML)

Test package

PackageDescription
Hermodr.TestPublisherIn-memory test channel and helpers for unit tests

Package Details

Hermodr.Annotations

NuGet GitHub pre-release

Contains the [Event] and [EventProperty] attributes used to annotate data-transfer classes with event type metadata. No dependencies except the .NET BCL.

dotnet add package Hermodr.Annotations

Hermodr.Publisher

NuGet GitHub pre-release

The heart of the framework. Provides:

  • EventPublisher
  • IEventPublishChannel and IBatchEventPublishChannel
  • EventPublisherBuilder for fluent DI registration
  • IEventFactory, IEventIdGenerator, and IEventSystemTime extensibility points
  • EventPublisherOptions for global defaults
  • named publisher pipelines resolved through keyed DI
dotnet add package Hermodr.Publisher

Hermodr.Publisher.AzureServiceBus

NuGet GitHub pre-release

Azure Service Bus channel implementation. Serialises CloudEvent objects as ServiceBusMessage instances and sends them to a configured queue or topic.

dotnet add package Hermodr.Publisher.AzureServiceBus

Hermodr.Publisher.RabbitMq

NuGet GitHub pre-release

RabbitMQ channel implementation using the official RabbitMQ.Client library. Supports AMQP exchange/routing-key annotations, publisher confirms, and persistent messages.

dotnet add package Hermodr.Publisher.RabbitMq

Hermodr.Publisher.MassTransit

NuGet GitHub pre-release

Wraps MassTransit's IPublishEndpoint / ISendEndpointProvider so events can be routed through any MassTransit-supported transport.

dotnet add package Hermodr.Publisher.MassTransit

Hermodr.Publisher.Webhook

NuGet GitHub pre-release

Delivers events over HTTP to a webhook endpoint. Features HMAC signing (SHA-256/384/512), exponential-backoff retries, configurable headers, and pluggable serialisers.

dotnet add package Hermodr.Publisher.Webhook

Hermodr.Publisher.Outbox

NuGet GitHub pre-release

Implements the transactional outbox pattern for event publishing. It adds the AddOutbox<TMessage>() builder entry point, outbox relay services, repository abstractions, and message-factory hooks for persisting events before relaying them to a transport-specific publisher pipeline.

dotnet add package Hermodr.Publisher.Outbox

Hermodr.Publisher.Outbox.EntityFramework

NuGet GitHub pre-release

Adds Entity Framework Core integration for the outbox channel, including DbOutboxMessage, OutboxDbContext, and the WithEntityFramework() registration helper that wires an IOutboxMessageRepository<TMessage> backed by EF Core.

dotnet add package Hermodr.Publisher.Outbox.EntityFramework

Hermodr.Amqp.Annotations

NuGet GitHub pre-release

Adds [AmqpExchange] and [AmqpRoutingKey] attributes to let you declare per-event-type AMQP routing metadata directly on your data classes. See RabbitMQ — AMQP Annotations for usage details.

dotnet add package Hermodr.Amqp.Annotations

Hermodr.Subscriptions

NuGet GitHub pre-release

Adds an in-process event subscription registry and dispatcher middleware to the EventPublisher pipeline. Includes:

  • IEventSubscription and EventSubscription — the subscription model
  • IEventSubscriptionRegistry — default in-memory registry
  • IEventSubscriptionResolver — extensibility point for database- or remote-backed resolvers
  • EventDispatcher — middleware that queries resolvers and invokes matched handlers
  • EventFilter / EventFilterBuilder — composable FilterExpression factory for envelope and data-payload filtering
dotnet add package Hermodr.Subscriptions

Hermodr.Publisher.OpenTelemetry

NuGet

Adds OpenTelemetry instrumentation to the event publishing pipeline. Creates producer and consumer Activity spans, injects W3C traceparent/tracestate as CloudEvents extension attributes on publish, and extracts them on the subscription side to enable end-to-end distributed tracing across service boundaries.

dotnet add package Hermodr.Publisher.OpenTelemetry

See OpenTelemetry Instrumentation for the full guide.


Hermodr.Schema

NuGet GitHub pre-release

Core schema model. Includes EventSchema, EventSchemaBuilder (fluent API), EventSchemaCreator (reflection-based), IEventSchemaFactory, IEventSchemaWriter, and IEventSchemaValidator.

dotnet add package Hermodr.Schema

Hermodr.Schema.Yaml

NuGet GitHub pre-release

Adds EventSchemaYamlWriter, which serialises an IEventSchema to a YAML stream using YamlDotNet.

dotnet add package Hermodr.Schema.Yaml

Hermodr.Schema.AsyncApi

NuGet GitHub pre-release

Exports single or multiple event schemas as a complete AsyncAPI 2.x document (JSON or YAML).

dotnet add package Hermodr.Schema.AsyncApi

Hermodr.TestPublisher

NuGet

An in-memory publish channel for use in unit and integration tests. Invokes a user-supplied callback whenever an event is published, so you can assert on published events without a real transport.

dotnet add package Hermodr.TestPublisher