https://www.conduitframework.com/
The best overview for how things are tied together is this presentation. Modules and functions are pretty well documented at this point, but higher level docs are needed.
I started this project about 2 years ago. At the time I had just sold the company I work for that Elixir would be a good idea and had already implemented a very simplistic setup that could connect an Elixir application to RabbitMQ. That implementation didn’t quite what I wanted to do and so I embarked on creating Conduit.
Conduit is intended to be a framework for building reliable, event-based systems. It does that by allowing you to integrate your application with a message broker like RabbitMQ, SQS, and in the future others. One problem I had when initially implementing stuff to connect to RabbitMQ was that there were libraries to connect to message brokers, but they didn’t give you a scalable OTP supervisor structure. For that part you were on your own. So, Conduit also attempts to address that, with adapters for the various brokers that has an OTP structure that scales well. Finally, I wanted a way to flexibly build patterns for processing messages that could be reused.
Here are two sample apps that use the two available adapters:
- https://github.com/conduitframework/conduit_amqp_example
- https://github.com/conduitframework/conduit_sqs_example
Here’s the source:
- https://github.com/conduitframework/conduit
- https://github.com/conduitframework/conduit_sqs
- https://github.com/conduitframework/conduit_amqp
The library is at v0.12.5 currently and I expect to release v0.12.6 this weekend.