I have been entrusted with the task of ascertaining if Actor Framework suits our needs. Ours is a distributed Systems Project in which nodes would be interconnected using different possible configurations e.g. Ring topology (no central/ master node), Star topology (one master) and Ip network (no master).
The nodes might select a control master themselves later for other functions but it wont be defined at the start. Any node may go off or new may arrive anytime. If control master goes off, the remaining elect a new one. Uptill now we have been working with ZeroMQ for internode communication.
I have read the whole CAF documentation.
1) My First Qs is, would you recommend CAF for such a project. The nodes use embedded ARM processors which performs only control tasks. The major donkey work is done by FPGA also in the node.
2) Suppose all nodes are connected with Ip protocol. Suppose there are 5 nodes working properly. They are using ptp messgages as well as pool::broadcast. 6th one arrives. How does it tell the others about its existence and that it too should be added to the broadcast list. One solution i could think of is that each node, in parallel to CAF, should monitor its network interface and when "discovery packet" arrives, it should somehow be able to tell the CAF Framework that the new node is there and the appropriate actions be taken.
I read the Docu again. Does the answer lies in using Broker ?
The reason I aksed if CAF would be good for such a system is because that Docu on most part seems to be referring to the sort of problems where a pool of nodes collectively carry out intensive computation the sort of which you require in Finite Element Methods Analysis. My project on the other hand implements an audio system. All nodes are audio sources and sinks. The major work (audio processing) is done by FPGAs. The processors perform control and switching tasks. With CAF, we just want to simplify tasks such as control data exchange and replication.
We are good with TCP. We need reliable communication.
Could you specify resources where I could learn more about Brokers. I drew this figure for you. Should the new node send simply an IP broadcast and it will be picked up by brokers in the already existing nodes ? Is there any example that addresses the same problem ?