What a bunch of baloney. My products ofetn live in this exact platonic world: class instances running in multiple threads send and receive asynchronous messages through internal pub/sub bus without knowing much about each other at all. All is working just fine, controlling devices, doing data processing, GPU accelerated display and whatnot.