Failure to validate parts

If you want to move nodes automatically, you should customize the Diagram.layout, not the computation of any link route.

How are you going to handle two links connecting different pairs of ports on the same two nodes? Unless the distance between the ports is exactly the same on both nodes, the links will not be parallel to each other.

Are you sure that you want to have distinct ports at all? What if you customized the link route computation so that it always went straight to somewhere/anywhere at the edge of the nodes?

There are several examples of this – look for overrides of Link.getLinkPoint in the samples:

And there’s yet another possibility – using an undocumented Link.routing option: go.Link.AvoidsNodesStraight. Link connection points