Barrel is a distributed database built on top of Erlang and CouchDB. There are provisions in Barrel to extend the database with user defined modules and hooking them to database events like database creation, deletion, updates etc. Barrel now uses Hooks to let modules subscribe to the events and register a callable that can return and modify results.
Secondary indexes can also be created using functions that accept a Doc and return a Key/Value tuple.
Right now there is provision only for functions written in Erlang or Javscript.
The aim of the proposal is to add Elixir to the list of languages supported by Erlang. This would allow more developers to extend barrel and also brings a whole bunch of libraries and support from the Elixir ecosystem.