The mechanism for branch migration differs between prokaryotes and eukaryotes.
Prokaryotes
The mechanism for prokaryotic branch migration has been studied many times in Escherichia coli. In E. coli, the proteins RuvA and RuvB come together and form a complex that facilitates the process in a number of ways. RuvA is a tetramer and binds to the DNA at the Holliday junction when it is in the open X form. The protein binds in a way that the DNA entering/departing the junction is still free to rotate and slide through. RuvA has a domain with acidic amino acid residues that interfere with the base pairs in the centre of the junction. This forces the base pairs apart so that they can re-anneal with base pairs on the homologous strands. In order for migration to occur, RuvA must be associated with RuvB and ATP. RuvB has the ability to hydrolyze ATP, driving the movement of the branch point. RuvB is a hexamer with helicase activity, and also binds the DNA. As ATP is hydrolyzed, RuvB rotates the recombined strands while pulling them out of the junction, but does not separate the strands as helicase would. The final step in branch migration is called resolution and requires the protein RuvC. The protein is a dimer, and will bind to the Holliday junction when it takes on the stacked X form. The protein has endonuclease activity, and cleaves the strands at exactly the same time. The cleavage is symmetrical, and gives two recombined DNA molecules with single stranded breaks. The breaks are then ligated together to complete the process.
Eukaryotes
The eukaryotic mechanism is much more complex involving different and additional proteins, but follows the same general path. Rad54, a highly conserved eukaryotic protein, is reported to oligomerize on Holliday junctions to promote branch migration.
Control
The rate of branch migration is dependent on the amount of divalentions, specifically magnesium ions, present during recombination. The ions determine which structure the Holliday junction will adopt, as they play a stabilizing role. When the ions are absent, the backbones repel each other and the junction takes on the open X structure. In this condition, migration is optimal and the junction will be free to move up and down the strands. When the ions are present, they neutralize the negatively charged backbone. This allows the strands to move closer together and the junction adopts the stacked X structure. It is during this state that resolution will be optimal, allowing RuvC to bind to the junction.