Session variables are constantly serialized and deserialized when messages cross transport boundaries.
But you say that you can use stream or session variables interchangeably in your project, so that means you don’t have any transport boundary (otherwise you will lose stream variables).
In this case, the flow and session variables do the same thing: they are just event properties.
Note that session variables tend to leak through the HTTP endpoints, so be careful using them.
source
share