Duplexing Pipes/Queues

That’s exactly what I don’t understand. Why is the sender putting an object on its own queue of incoming messages? If you have 2 processes, then imo each would need to have its own (non-shared) queue of incoming messages (so the queue would be an internal implementation detail of that process, it doesn’t have to be known outside). Using two shared queues doesn’t make sense to me here, since then yes, you’re losing all the advantages of asynchronous processing and forcing the processes to walk in a ping-pong lockstep… Or am I still missing sth?

Btw - as an aside – just to show you that queue usage and design is not trivial even for the best among us, you might find this thread interesting: Queue termination :slight_smile: