This sample demonstrates ABP's dynamic (string-based) distributed event bus feature with multiple providers.
- .NET 10.0+
- Docker (for message brokers)
- SQL Server (local)
| Project | Provider | Transport |
|---|---|---|
DynamicDistributedEvents.RabbitMq |
RabbitMQ | RabbitMQ via Docker |
DynamicDistributedEvents.Kafka |
Kafka | Kafka + Zookeeper via Docker |
DynamicDistributedEvents.Rebus |
Rebus | In-memory (no external dependency) |
DynamicDistributedEvents.Azure |
Azure Service Bus | Azure Service Bus Emulator via Docker |
docker compose up -d rabbitmq
dotnet run --project src/DynamicDistributedEvents.RabbitMqdocker compose up -d zookeeper kafka
sleep 15
dotnet run --project src/DynamicDistributedEvents.KafkaNo Docker needed:
dotnet run --project src/DynamicDistributedEvents.Rebusdocker compose up -d servicebus-sql servicebus-emulator
sleep 30
dotnet run --project src/DynamicDistributedEvents.AzureAll distributed event scenarios passed (default).
Each project runs 3 scenarios:
- TypedFromTyped — Publish typed event → typed handler receives it
- TypedFromDynamic — Publish by string name → typed handler receives auto-converted data
- DynamicOnly — Publish by string name → dynamic handler receives
DynamicEventData
Update appsettings.json in each project to match your SQL Server connection string.