Modern applications (web or otherwise) use Erlang because of its asynchronous nature. It seems a shame we can't easily extend this asynchronous paradigm into our data access layer. Heretofore we have been constrained by the support (or lack thereof) of asynchronous access to our data in the client. A pair of new utilities aim to work toward changing that (for the better, of course). By leveraging a custom RabbitMQ exchange type that stores every message it gets in Riak and a postcommit hook for Riak that fires every entry it sees an update on to a RabbitMQ broker, you can get fully asynchronous access to your data that isn't limited to a client--or even client platform.
In this talk I will give a little background of the development of these utilities and why I've been carrying a torch for asynchronous data access. I'll show examples of the uses of these utilities together, as well as using only the custom RabbitMQ exchange type for auditing messages, or using only the Riak postcommit hook for freshening caches.