Like in the title: Is it possible to send message to predecessor in Apache Giraph? And what's more important is it recommended (I can find some applications where it might be usefull).
You can send messages to any random node in Apache Giraph, but you need to find out their ID first. So to send messages to a predecessor, you’d first need to find their IDs, by sending messages from the predecessors to all their successors. I’ve done this and it was a quite screwed up algorithm in which I had a hard time understanding which (temporarly stored) ID belongs to which node a what should I send to this node.
Sure you might have algorithms where it is absolutely necessary to be able to communicate with the predecessing node (like it was for me) but it is definitely much easier to just follow the edges.
There is research going on about improving Giraph and similar frameworks, by allowing some nodes to execute the next supersteps before every other node finished the previous one. These algorithms use the info about Edges to determine which node still might get a message or not. If you send messages the other way around or randomly, the algorithm wouldn’t work anymore. But as I said, to the best of my knowledge, they are still ongoing research (a colleague of mine did one of those) so you don’t need to bother with it for now.
Also, AFAIK, GraphX (on top of spark) only allows to send messages using the edges and not the other way around, so your algorithm would be hard to reimplement there, if that might be a requirement.