The SustainML Framework is designed to provide an energy-optimized hardware solution and a corresponding machine learning (ML) model for a given user-defined problem, while taking into account the carbon footprint associated with training.
To support modularity, scalability, and interoperability, the framework relies on eProsima Fast DDS as its communication middleware. Fast DDS enables distributed components, referred to as Nodes, to exchange data efficiently and consistently across the system.
System Overview
Within the SustainML architecture, a Node represents a software module that performs a specific task. Each Node is implemented as an independent executable unit that can be deployed locally or remotely.
This modular structure allows the system to scale and evolve without tightly coupling its components, a design made possible through the DDS publish–subscribe model provided by Fast DDS.
The architecture distinguishes two main areas of functionality:
- The Front-End, which provides the user interface and interaction layer.
- The Back-End, composed of the Orchestrator Node and several specialized Module Nodes.

Front-End Node
The Front-End Node serves as the user-facing component of the SustainML Framework. It collects the user’s requirements and constraints, sends them to the Back-End, and displays intermediate and final results as they become available.
The interface includes the graphical elements necessary for defining tasks and viewing results. Communication with the Orchestrator Node occurs through DDS topics, allowing real-time feedback and synchronization between the user interface and the system’s internal processes.
Back-End Components
The Back-End includes two main types of nodes: the Orchestrator Node and several Module Nodes responsible for specialized subtasks.
Orchestrator Node
The Orchestrator Node coordinates the execution of tasks and manages data flow among the components. Its main functions include:
- Managing Node Lifecycles
It acts as a lifecycle manager, starting, stopping, and monitoring other nodes by sending control commands and receiving their status updates through DDS. - Monitoring Tasks
Each user-defined task is assigned a unique task_id. The Orchestrator tracks all tasks and their intermediate outputs, monitoring node activity and error states in real time. Multiple tasks can be managed concurrently. - Hosting the Data Repository
The Orchestrator stores all data generated during the execution of tasks. Each dataset is indexed by a hierarchy of identifiers (problem_id, iteration_id, and task_id). This structure supports retrieval of both current and historical task data and allows the Front-End to display live updates.
Module Nodes
Each Module Node performs a specific part of the solution process. The current system includes:
- Application-Requirements Node
- Carbontracker Node
- Hardware-Constraints Node
- ML-Model-Metadata Node
- ML-Model-Provider Node
- Hardware-Resource-Provider Node
These nodes operate independently but remain synchronized through DDS communication, allowing each to focus on its particular role within the larger workflow.
Configuration and Control via DDS RPC
The Orchestrator Node provides a configuration interface that uses Remote Procedure Calls (RPC) over DDS.
Through the configuration_request() API, clients can query or update the configuration of any node in the system.
Requests and responses are encoded as JSON objects containing:
- node_id – the target node identifier
- transaction_id – an identifier for the request–response pair
- configuration – the current or updated settings
On success, the system returns the updated configuration. In case of an error, an error code and message are provided. This mechanism allows dynamic, synchronous configuration management across the distributed environment.
Conclusion
The use of eProsima Fast DDS provides SustainML with a flexible and efficient data exchange layer that supports modularity, distributed operation, and real-time feedback.
This infrastructure allows the framework to coordinate multiple nodes, manage user-defined ML tasks, and maintain consistent communication between the Front-End and Back-End components.
MORE INFORMATION ABOUT SUSTAINML:
If you have any questions, please get in touch with








This project has received funding from the European Union’s Horizon Europe research and innovation programme under grant agreement No 101070408.