A data context instance is assigned to the request when the executor executes the process. The data context instances for different requests are completely isolated. It holds all the user data for this request. No parameters are passed between different components and all data interaction is done through this data context.
The concept of data context is very important in the LiteFlow framework, where all your business data is placed in a data context.
To be orchestratable, it must eliminate the variability of each component. If every component has inconsistent outgoing and incoming references, it can't be orchestrated.
LiteFlow has a special design concept for this, usually when we write a waterfall program, A calls B, then A must pass the parameters required to B, but in the LiteFlow framework system, the definition of each component is not required to accept parameters, and there is no return.
Each component only needs to get the data it cares about from the data context, without caring who provides this data, and similarly, each component only needs to put the result data generated by its own execution into the data context, without caring who the data is actually provided to. In this way, the data is decoupled to a certain extent. Thus, the purpose of programmability is achieved. This idea is also mentioned in the design principles in Introduction, which gives an example, so you can go through it again.
Once data is put in the data context, any node in the whole link is fetchable.