A message queue framework for Elixir with middleware support and multiple adapter options.
Conduit is an Elixir-based message queue framework that abstracts different messaging systems through adapters and middleware. It solves the problem of integrating multiple message queue protocols by providing a unified interface for brokers, subscribers, and publishers. Developers can use it to build decoupled, scalable applications without being locked into a specific messaging technology.
Elixir developers building distributed systems or microservices that require reliable message queuing with support for multiple protocols like AMQP and SQS.
Developers choose Conduit for its adapter-based architecture, which allows switching between message queue systems without rewriting application logic, and its middleware support for custom message processing pipelines.
A message queue framework, with support for middleware and multiple adapters.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified interface for AMQP and SQS, allowing developers to switch between systems without rewriting application logic, as evidenced by the officially supported adapters.
Supports custom processing pipelines for subscribers and publishers, enabling easy integration of logging, validation, or transformation steps, as highlighted in the middleware support feature.
Includes mix tasks like `conduit.gen.broker` and `conduit.gen.subscriber` to rapidly generate brokers and components, speeding up development as shown in the Getting Started section.
Allows fine-grained configuration of exchanges, queues, and bindings tailored to each adapter, ensuring optimal use of underlying systems, as detailed in the adapter-specific docs.
Currently only supports AMQP and SQS, with other adapters merely 'planned for the future', which restricts compatibility with newer or niche message queue systems.
Requires separate setup for each adapter's topology, forcing developers to consult external docs for exchanges and queues, adding to the learning and maintenance burden.
Relies on additional hex packages like ConduitAMQP and ConduitSQS, which introduces potential versioning issues and increases dependency management overhead.