As all flow maps, this one was tricky. The main lifting is done with the edgebundle package. Not happy with the automatic edge routing and the overlap of lines. The original map displays some different countries. Not sure how good the data quality is.
The dataset contains all migration flows between countries and we can use the force directed edgebundling to show all flows at once.