Custom workers

It is possible to entrust a worker for performing any kind of costly computation. If the computation to be processed remotely consists in solving an optimization problem described in a standard format, then the packaged workers should be used. Otherwise, one can easily write a custom worker that handles the relevant computation.

For this purpose, DecisionBrain provides a library that handles communication between the worker and the master (through messaging with RabbitMQ), and provides the needed classes to implement a worker. For now, this library is only implemented in Java (with Spring Boot), but may be ported to other languages in the future, including Python for which a prototype is already available.

The detailed steps to bootstrap a custom worker are given in Sub-section 1. An example of how to implement a task is given in Sub-section 2. How to define and manage job flows from a worker, for map-reduce kind of use cases is explained in Sub-section 3. Finally, the worker library documentation is available in Sub-section 4.