I am looking at Akka to implement a distributed directed acyclic graph
where each node in the graph can potentially be on different vm
instances and hosts. (I have already implemented a more classic
multithreaded version on a single VM in Java).
Nodes are linked to each other and do stuff only when their direct
parents have done their stuff, and so on and so forth. It obviously
all starts from the root node which triggers the whole chain of
events. I need to be able to cater for the diamond type scenario (node
d depends on nodes b and c, both depending on node a).
Going through the Akka documentation, it seems that I could implement
this using several methods:
1. Event Buses
2. Custom Routers
3. DIY with actors
Specifically, how would you implement the following: