Question about current serialization flow (FitIns / RecordDict)

Hi Flower team,

I’m trying to understand the current serialization/deserialization flow for FitIns / FitRes.

Previously, I understood the flow to be roughly:
FitIns → fitins_to_recorddict → transport → recorddict_to_fitins (and similarly for FitRes).

However, when inspecting the runtime behavior and adding logs, it seems that some conversion functions (e.g. fitins_to_recorddict, parameters_to_arrayrecord) are no longer always called, and the flow doesn’t pass through RecordDict in the way I expected.

So I wanted to ask:

  1. What is the current canonical flow for serializing/deserializing FitIns / FitRes?

  2. Is the RecordDict path still always used, or only in specific cases?

  3. Has this flow been recently updated or refactored?

Any clarification or pointer to updated docs/diagrams would be greatly appreciated.

Thanks a lot!

Hey, yes, the logic has changed. Those helpers were part of a transitional bridge between RecordDict and the legacy FitIns/FitRes API, but they’re no longer on the main path. The current flow is message-first and parameters and metadata live directly in a RecordDict carried by a Message. You can find the details here: https://flower.ai/docs/framework/ref-api/flwr.common.Message.html?utm_source=chatgpt.com

1 Like