Skip to main content

Sample Projects

The samples/ directory of the repository contains runnable projects that demonstrate the major use cases of the Hermodr framework.

Each sample is self-contained. Some samples spin up external infrastructure with docker-compose.yml, while others are pure .NET projects that you can run directly.


Available samples

SampleTransportHighlights
OrderService — Minimal API + RabbitMQRabbitMQAnnotated event classes, typed channels, IEventPublisher in a service
OrderService — In-Process Outbox + RabbitMQRabbitMQTransactional Outbox with in-process relay; EF Core SQLite; [AmqpExchange] / [AmqpRoutingKey] annotations
OrderService — In-Process Outbox with Scheduled DeliveryRabbitMQRecords the event immediately in SQLite and delays only transport delivery via ScheduleDeliveryAt
OrderService — Split Outbox + MassTransit RabbitMQMassTransit / RabbitMQSplit outbox across two processes; API has no transport dependency; external relay worker; MassTransit publish channel
OrderService — In-Process Dead-Letter ReplayIn-memory sample channelsDead-letter callback with immediate replay to a recovery channel inside the same process
OrderService — Split Dead-Letter Replay with Entity FrameworkEF Core SQLite + in-memory recovery channelShared dead-letter repository with a separate worker replaying pending messages

How to run a sample

All samples follow the same basic workflow:

# 1. Navigate to the sample folder
cd samples/<sample-folder>

# 2. Start any required infrastructure (only when the sample needs it)
docker compose up -d

# 3. Run the project
dotnet run

Refer to each sample's own README.md for endpoint details, curl examples, and configuration options.