echo
echo copied to clipboard
Asynchronous Adapter Dispatch
I believe putting each adapter's dispatch into an async job queue would be best; but, I'm not sure how to best go about this in the idiomatic way (GenServer/GenEvent?, External Job Queue Module?, Something like Resque?). I've outlined a few desirable aspects:
Goals
- Ideally do this without any external (to elixir) dependencies (ex. Running a Redis server, RabbitMQ stack, etc. -- I'm not closed to this, but I'd love to keep it simple)
- The ability to incorporate retries, back-offs, etc, and log when all tries exhausted
- Persistence so that jobs don't disappear on App restart/server reboot
- Not incorporate all the async code directly into echo, but have it easily pluggable.
mnesia would handle the basics...
- [x] no dependencies
- [x] persistence
Although something that handles the rest of the code would be really nice, like jobs - erlang, honeydew or perhaps just bite the bullet and look at rabbitmq.