I am at the beginning of a project which involves reading from several sensors and fusing the data from those sensors together. Altogether there will be 4 sensors connected via USB and a webcam, also connected via USB.
One of my colleagues is very vocal about how nice it is to split up programs into smaller parts and have them communicate over the network. He suggests that we should have an executable for each sensor (or camera) and then a central controlling application which communicates with the others.
I intuitively don't like this idea. The colleague in question worked on another project which used that approach and had no end of problems that were hard to track down and debug.
It doesn't seem like a very state-ful design and strikes me as somewhat inelegant. I would like to write a library for dealing with each sensor and maybe run them in separate threads.
It should also be pointed out that the calculations we need to do will provide updates to another system at nearly 1000Hz. Adding in a layer of network communications seems like adding a potential bottleneck.
I would be interested to hear other peoples' opinions on this and perhaps some references regarding this type of practice.