Insufficient information.
You could use multiple processes or multiple threads.
Communications could be through memory, pipes, sockets, queues, messages, the filesystem or a database.
Some of these will be more appropriate for some applications, others for others. Which will depend upon what you are trying to do? A few (of many possible) questions:
- Why multiple agents?
- Single or cross platform?
- Run on demand or (semi-)permanent daemons?
- Data sources and loads (both individual 'processes' and shared)?
- Is this a batch-type process (start-process-finish) or an interactive process (initiated by 'clients', multiple concurrent clients)?
Basically, your description doesn't begin to say what you are trying to achieve, so any answer is pure speculation.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.