EPJ Web of Conferences (Jan 2020)

ALFA: A framework for building distributed applications

  • Al-Turany Mohammad,
  • Rybalchenko Alexey,
  • Klein Dennis,
  • Kretz Matthias,
  • Kresan Dmytro,
  • Karabowicz Radoslaw,
  • Lebedev Andrey,
  • Manafov Anar,
  • Kollegger Thorsten,
  • Uhlig Florian

Journal volume & issue
Vol. 245
p. 05021


Read online

The ALFA framework is a joint development between ALICE Online-Offline and FairRoot teams. ALFA has a distributed architecture, i.e. a collection of highly maintainable, testable, loosely coupled, independently deployable processes. ALFA allows the developer to focus on building singlefunction modules with well-defined interfaces and operations. The communication between the independent processes is handled by FairMQ transport layer. FairMQ offers multiple implementations of its abstract data transport interface, it integrates some popular data transport technologies like ZeroMQ and nanomsg. Furthermore it also provides shared memory and RDMA transport (based on libfabric) for high throughput, low latency applications. Moreover, FairMQ allows the single process to use multiple and different transports at the same time. FairMQ based processes can be controlled and orchestrated via different systems by implementing the corresponding plugin. However, ALFA delivers also the Dynamic Deployment System (DDS) as an independent set of utilities and interfaces, providing a dynamic distribution of different user processes on any Resource Management System (RMS) or a laptop. ALFA is already being tested and used by different experiments in different stages of data processing as it offers an easy integration of heterogeneous hardware and software.