Any running process/thread that does a single logical piece of work will be called a task.
Each task can have access to MessageQueues that can be implemented via OS level pipes or some other slightly higher level IPC mechanism. (We can't use electron's in-built queues as certain tasks, such as model training, will be running from python files.)
The system-side tasks, such as a visualizer can have access to these MessageQueues as well, and then can show real-time plots, or otherwise perform some computation.
We can setup read streams from files as such task-MQ pair as well.
We can structure our system this way:
MessageQueue
s that can be implemented via OS level pipes or some other slightly higher level IPC mechanism. (We can't use electron's in-built queues as certain tasks, such as model training, will be running from python files.)MessageQueue
s as well, and then can show real-time plots, or otherwise perform some computation.