  Federated learning is an emerging machine learning paradigm that enables
multiple devices to train models locally and formulate a global model, without
sharing the clients' local data. A federated learning system can be viewed as a
large-scale distributed system, involving different components and stakeholders
with diverse requirements and constraints. Hence, developing a federated
learning system requires both software system design thinking and machine
learning knowledge. Although much effort has been put into federated learning
from the machine learning perspectives, our previous systematic literature
review on the area shows that there is a distinct lack of considerations for
software architecture design for federated learning. In this paper, we propose
FLRA, a reference architecture for federated learning systems, which provides a
template design for federated learning-based solutions. The proposed FLRA
reference architecture is based on an extensive review of existing patterns of
federated learning systems found in the literature and existing industrial
implementation. The FLRA reference architecture consists of a pool of
architectural patterns that could address the frequently recurring design
problems in federated learning architectures. The FLRA reference architecture
can serve as a design guideline to assist architects and developers with
practical solutions for their problems, which can be further customised.
