When running functions involving EdgeDirection, the EdgeDirection.Either type does not truly perform the actual specified direction (either).
For instance, when using Pregel API with a simple graph as shown:
With EdgeDirection.Either you would guess that vertex #3 will send a message (when activated) to vertices 1, 2, and 4, but in reality it does not.
This might be bypassed, but in an expansive and ineffective way.
Tested with 2.2.0, 2.1.1 and 2.1.2 spark versions.