How kemalq/springboot-rabbitmq-microservices works
This is a Spring Boot producer/consumer system demonstrating asynchronous RabbitMQ messaging. The main workflow is HTTP requests through exchange-specific producer controllers and a publisher into RabbitMQ, then listener-driven validation and handler dispatch on the consumer. The README documents confirms, returns, validation, and consumer routing; source excerpts were not provided, so links reflect documented architecture and the file tree without assuming additional wiring.
Main entry points: RabbitMessagePublisher.java Message Publisher · MessagingApplicationServiceImpl.java Processing Service · DirectController.java Direct API · FanoutController.java Fanout API
Components 19
Producer API
- Direct API
rabbitmq-producer/src/main/java/com/example/controller/DirectController.java - Fanout API
rabbitmq-producer/src/main/java/com/example/controller/FanoutController.java - Topic API
rabbitmq-producer/src/main/java/com/example/controller/TopicController.java - Headers API
rabbitmq-producer/src/main/java/com/example/controller/HeadersController.java - Message Publisher
rabbitmq-producer/src/main/java/com/example/service/RabbitMessagePublisher.java - Message DTOs
rabbitmq-producer/src/main/java/com/example/dto
Broker Routing
- Exchange Setup
rabbitmq-producer/src/main/java/com/example/configuration - Infrastructure Init
rabbitmq-producer/src/main/java/com/example/configuration/RabbitInfrastructureInitializer.java - RabbitMQ Broker
Consumer Processing
- Message Listener
rabbitmq-consumer/src/main/java/com/example/listener/RabbitMessageListener.java - Processing Service
rabbitmq-consumer/src/main/java/com/example/application/MessagingApplicationServiceImpl.java - Message Validator
rabbitmq-consumer/src/main/java/com/example/configuration/MessageValidator.java - Notification Registry
rabbitmq-consumer/src/main/java/com/example/handler/notification/NotificationHandlerRegistry.java - Channel Handlers
rabbitmq-consumer/src/main/java/com/example/handler/notification - User Event Registry
rabbitmq-consumer/src/main/java/com/example/handler/userEvent/UserEventHandlerRegistry.java - User Event Handlers
rabbitmq-consumer/src/main/java/com/example/handler/userEvent - Consumer DTOs
rabbitmq-consumer/src/main/java/com/example/dto
Runtime Support
- Health Monitoring
rabbitmq-consumer/src/main/resources/application.properties
Other components
- HTTP Client
Connections 22
- HTTP Client → Direct API: HTTP request
- HTTP Client → Fanout API: HTTP request
- HTTP Client → Topic API: HTTP request
- HTTP Client → Headers API: HTTP request
- Direct API → Message Publisher: publishes via
- Fanout API → Message Publisher: publishes via
- Topic API → Message Publisher: publishes via
- Headers API → Message Publisher: publishes via
- Message DTOs → Message Publisher: validated payloads
- Message Publisher → RabbitMQ Broker: publishes; confirms
- Message Publisher → RabbitMQ Broker: tracks unroutable returns
- Exchange Setup → RabbitMQ Broker: defines exchanges
- Infrastructure Init → RabbitMQ Broker: initializes topology
- RabbitMQ Broker → Message Listener: delivers messages
- Message Listener → Processing Service: delegates processing
- Processing Service → Message Validator: validates message
- Processing Service → Notification Registry: routes notifications
- Notification Registry → Channel Handlers: selects channel
- Processing Service → User Event Registry: routes user events
- User Event Registry → User Event Handlers: selects handler
- Consumer DTOs → Processing Service: message types
- Health Monitoring → RabbitMQ Broker: configures integration