Project public repository FERARI EU project Grant No 619491.

wercker status


The goal of FERARI is to provide a framework for distributed computation of streams while minimizing communication. This is achieved by maintaining local models that send messages only when they are violated.

I want to see the demo

Follow the steps as described at Demo.

I want to get involved

Follow the steps in our guide: How to use the repository.



Module core provides general interfaces that are independent of runtime adaption. The basic components are local state which accepts messages and may contact a coordinator if needed. The coordinator in turn can send updated model information to the instances of local state. Of course it is completely feasible to contact the coordinator after each message to the local models. However this is not recommended as it will become a bottleneck when processing large amounts of data in a distributed fashion. For further information please read the Overview Slides

Runtime Adaptions

Every pair of local/global models expressed using the interfaces defined in core should be able to run on different runtime adaptions. Please contribute new adapters.

Complex Event Processing

We provide integration of Complex Event Processing via the Proton Engine. For more details see Proton on Storm.


Maven is used for building the project and maintaining dependencies. There are modules for core, runtime adaptions and examples. The runtime adaptions module has a submodule for each adaption. Examples will have a submodule for their implementations of local and global states as well as submodules deploying it to different runtime adaptions.

Distributed Online Learning Framework

The learning framework offers a variety of online learning algorithms that can be used within the FERARI architecture. The learners can obtain input events from the CEP engine, or directly from the streams. The predictions of the learners can be outputted to a dashboard, or further used as input events for the system (e.g., as part of novel complex events).

If you want to use this software in your research, please cite one of the following papers.

  • Kamp, Michael, et al. "Communication-efficient distributed online prediction by dynamic model synchronization." Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer Berlin Heidelberg, 2014.

  • Kamp, Michael, et al. "Communication-Efficient Distributed Online Learning with Kernels." Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer International Publishing, 2016.


Copyright 2014 FERARI Consortium

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.