How dhruv0306/eventbus works
This is a Java library for thread-safe, in-memory event publication and subscription. An application registers typed, optionally filtered handlers, then publishes synchronously on its calling thread or asynchronously on virtual threads; the bus limits concurrent async handler execution and routes missing-subscriber or handler failures to a bounded dead-letter queue. The README also documents extensible event types and configurable limits. The implementation and queue behavior are supported by sampled source; other documented capabilities are represented at the public API level.
Main entry points: ConcurrentEventBus.java Concurrent event bus · DeadLetterQueue.java Dead-letter API · BoundedDeadLetterQueue.java Bounded dead-letter queue · EventBus.java EventBus API
Components 12
Public API
- Custom event
src/main/java/io/github/dhruv0306/eventbus/Event.java - EventBus API
src/main/java/io/github/dhruv0306/eventbus/EventBus.java - Subscription handle
src/main/java/io/github/dhruv0306/eventbus/Subscription.java - Bus configuration
src/main/java/io/github/dhruv0306/eventbus/EventBusConfig.java
Event dispatch
- Concurrent event bus
src/main/java/io/github/dhruv0306/eventbus/ConcurrentEventBus.java - Virtual-thread executor
src/main/java/io/github/dhruv0306/eventbus/ConcurrentEventBus.java - Dispatch semaphore
src/main/java/io/github/dhruv0306/eventbus/ConcurrentEventBus.java
Failure handling
- Dead-letter API
src/main/java/io/github/dhruv0306/eventbus/DeadLetterQueue.java - Bounded dead-letter queue
src/main/java/io/github/dhruv0306/eventbus/BoundedDeadLetterQueue.java - Dropped-event exception
src/main/java/io/github/dhruv0306/eventbus/EventDroppedException.java
Other components
- Application
- Subscriber handlers
Connections 15
- Application → EventBus API: subscribes and publishes
- Concurrent event bus → EventBus API: implements
- Application → Custom event: defines
- Concurrent event bus → Bus configuration: reads limits
- Concurrent event bus → Subscription handle: returns handle
- Concurrent event bus → Subscriber handlers: dispatches events
- Concurrent event bus → Virtual-thread executor: submits async tasks
- Virtual-thread executor → Dispatch semaphore: acquires permits
- Virtual-thread executor → Subscriber handlers: runs async handler
- Concurrent event bus → Subscriber handlers: runs sync handler
- Concurrent event bus → Dead-letter API: offers failures
- Concurrent event bus → Bounded dead-letter queue: creates queue
- Bounded dead-letter queue → Dead-letter API: implements
- Application → Dead-letter API: drains letters
- Concurrent event bus → Dropped-event exception: throws on overflow