A complex workflow can contains hundreds of activities. In this case you should break this workflow to multiple sub-workflows, each sub-workflow will do a specific task in the whole process. So we can see the whole picture better and also easier for management.
We can use arguments to pass data between these sub-workflows.
You can see an example in Variables and Arguments section.