I have a number of Process Builder processes on the Case record, which do various field updates. I am aware that I cannot control the order in which these fire, but some of the processes are dependent on field updates from other processes. So to try and get all field updates done, including the dependent ones, I made all the processes recursive by clicking on the Recursion option when choosing the object. But this does not seem to be working. After setting up debug and looking at the debug log, it appears that each individual process is only run once, and the recursion is not occurring. So how do I actually get this to work?
May I suggest that you design and organise your process builders to "1-per-object". This way you will be able to control the order of execution within the same PB.
The recursion works when Process B modifies a value used as criteria in Process A. If Process A is recursive then it will re-evaluate indeed. In theory, recursive Process B could trigger recursive Process A to fire again and then Process A to trigger Process B, and so on and so forth... That's the reason why the recursive chain is limited to 5 times so that no infinite loop is created.
If processes have no common set of fields whatsoever (criteria & update) then they won't trigger each other and I guess this has to be your case.