Ad

event_bus: Minimalist Elixir event bus with ETS

EventBus provides a traceable and extendable event bus implementation for Elixir, featuring an event store and watcher based on ETS. It enables fast, memory-friendly event handling with optional tracing.
Screenshot of otobus/event_bus homepage

EventBus is a minimalist Elixir library designed to facilitate event-driven architectures. It implements a scalable event bus with built-in event storage and a watcher mechanism, leveraging the efficiency of ETS (Efficient Transient Storage). The library aims to solve the challenge of creating a reliable and performant event communication system within Elixir applications, minimizing memory overhead while maximizing speed. It utilizes a configurable approach to event handling, supporting various subscription patterns and extending functionality through addons.

EventBus prioritizes performance with O(1) complexity for most operations. It's designed to be memory-friendly by only sending event shadows, and it integrates queueing theory for robust input handling. The library offers extensibility through addons, traceable events using opentracing, and concise configuration for minimal use cases. Its design emphasizes simplicity and ease of integration into existing Elixir projects.

  • Performance: O(1) complexity for core operations, optimized for speed.
  • Memory Efficiency: Event shadows (ID and topic) are pushed to subscribers, reducing data transfer.
  • Extensibility: Supports addons for extending functionality.
  • Traceability: Optional attributes for integrating with opentracing platforms.
  • Flexible Subscription: Supports various subscription patterns and filtering options.
  • Durability: Built-in event store provides persistence and replay capabilities.
  • Configuration: Minimal configuration is required for basic usage.

The project is actively maintained with recent commits and a responsive issue tracker, indicating ongoing development and support. The documentation is comprehensive, covering installation, usage, and advanced features. The presence of a wiki and a contributing guide suggests a welcoming community. The project has gained a significant number of stars and forks, indicating community interest and adoption.

EventBus is beneficial for Elixir developers seeking a robust and performant event handling solution. It simplifies building event-driven applications by providing a reliable event bus with built-in storage and tracing capabilities. It's valuable for applications needing decoupled components, asynchronous processing, and sophisticated event management workflows, offering a better alternative to manual message passing or complex external event systems.

Languages:
Summarize:
Share:
Stars
703
Forks
42
Issues
7
Created
9 years ago
Commit
3 years ago
License
MIT
Archived
No
Updated 13 days ago

Similar Repositories