How alifcapital/eventbus.rabbitmq works
EventBus.RabbitMQ is a .NET library that routes application events through RabbitMQ, with publishing and receiving configured through dependency injection and support for multiple virtual hosts. The main workflow is an application publishing an event through the publisher manager, which serializes and sends it to RabbitMQ; subscriber consumers receive messages and invoke registered handlers. The library also supports collected publishing, outbox/inbox integration, configuration-based discovery, and tracing. The graph reflects README-documented capabilities and relationships visible in sampled source; several subsystem implementations are indexed but not excerpted.
Main entry points: EventPublisherManager.cs Publisher Manager · EventConsumerService.cs Event Consumer · RabbitMqExtensions.cs DI Registration · EventSubscriberCollector.cs Subscriber Collector
Components 18
Configuration and Registration
- DI Registration
src/Extensions/RabbitMqExtensions.cs - Host Settings
src/Configurations/RabbitMqHostSettings.cs - Bus Configuration
src/Information/EventBusConfigurationProvider.cs - Startup Services
src/BackgroundServices/StartEventBusServices.cs
Event Publishing
- Publisher Manager
src/Publishers/Managers/EventPublisherManager.cs - Publisher Collector
src/Publishers/Managers/EventPublisherCollector.cs - Outbox Manager
src/Publishers/Managers/OutboxEventPublisherManager.cs - Broker Publisher
src/Publishers/Messaging/MessageBrokerEventPublisher.cs
Event Consumption
- Subscriber Collector
src/Subscribers/Managers/EventSubscriberCollector.cs - Consumer Creator
src/Subscribers/Consumers/EventConsumerServiceCreator.cs - Event Consumer
src/Subscribers/Consumers/EventConsumerService.cs - Application Handlers
src/Subscribers/Models/IEventSubscriber.cs
RabbitMQ Transport
- Connection Manager
src/Connections/RabbitMqConnectionManager.cs - RabbitMQ Connection
src/Connections/RabbitMqConnection.cs
Storage and Telemetry
- Inbox Storage
src/Subscribers/Consumers/EventConsumerService.cs - Trace Instrumentation
src/Instrumentation/Trace/EventBusTraceInstrumentation.cs
Other components
- Application
- RabbitMQ Broker
Connections 23
- Application → DI Registration: registers services
- DI Registration → Host Settings: binds settings
src/Extensions/RabbitMqExtensions.cs - DI Registration → Bus Configuration: registers provider
src/Extensions/RabbitMqExtensions.cs - Application → Publisher Manager: publishes events
- Publisher Manager → Publisher Collector: resolves settings
src/Publishers/Managers/EventPublisherManager.cs - Publisher Manager → RabbitMQ Broker: publishes message
src/Publishers/Managers/EventPublisherManager.cs - Publisher Manager → Outbox Manager: uses outbox mode
- Publisher Manager → Broker Publisher: publishes via adapter
- DI Registration → Subscriber Collector: registers subscribers
src/Extensions/RabbitMqExtensions.cs - Subscriber Collector → Consumer Creator: creates consumers
src/Subscribers/Managers/EventSubscriberCollector.cs - Consumer Creator → Event Consumer: creates service
src/Subscribers/Consumers/EventConsumerServiceCreator.cs - Event Consumer → RabbitMQ Broker: consumes messages
src/Subscribers/Consumers/EventConsumerService.cs - Event Consumer → Application Handlers: invokes handlers
src/Subscribers/Consumers/EventConsumerService.cs - Event Consumer → Inbox Storage: stores events
src/Subscribers/Consumers/EventConsumerService.cs - Event Consumer → Trace Instrumentation: creates activities
src/Subscribers/Consumers/EventConsumerService.cs - Publisher Manager → Trace Instrumentation: creates activities
src/Publishers/Managers/EventPublisherManager.cs - Connection Manager → RabbitMQ Connection: creates connection
src/Connections/RabbitMqConnectionManager.cs - Event Consumer → Connection Manager: gets connection
- Startup Services → Subscriber Collector: starts consumers
src/BackgroundServices/StartEventBusServices.cs - Startup Services → Publisher Collector: starts publishing
src/BackgroundServices/StartEventBusServices.cs - Bus Configuration → Publisher Collector: reports publishers
src/Information/EventBusConfigurationProvider.cs - Bus Configuration → Subscriber Collector: reports subscribers
src/Information/EventBusConfigurationProvider.cs - RabbitMQ Connection → RabbitMQ Broker: connects to broker