How can I preserve nids during a migration?
This is actually easy to do. In the prepare() function of the node migration class, just set the nid and is_new to true:

public function prepare($node, $row) {
  // Preserve old nid so that old links to nodes using /node/nid still work
  $node-&gt;is_new = TRUE;
  $node-&gt;nid = $row-&gt;nid;
}