Architectural patterns for the design of federated learning systems