Barenboim

Conejo

hex.pm hexdocs.pm Build Status

Barenboim is prepared to tackle with data streaming dependencies in concurrent flows.

If your application works with a data streaming and your incoming events could have dependencies between them, the app can have problems about when the dependency data is ready. Reasons:

Installation

Configuration

How to use it

Define the function that will retrieve the dependency data where dependency_id is the id of your data and call Barenboim.get_data. You can also specify a time out in milliseconds.

fun = fn(dependency_id) -> MyDataModule.get(dependency_id) end
{:ok, data} = Barenboim.get_data(dependency_id, fun)

Meanwhile, the flow that is processing a new event has to call ready function when the data is available for others.

Barenboim.ready(dependency_id)

Test

mix test

In honor of

Daniel Barenboim