(if you're on stablizing for the release, don't read this message until after the release)
I've been thinking on how to implement distributed messaging, e.g., IPC between threads on different nodes.
One idea I had was to just launch a proxy thread per connection and then use the normal IPC API.
Example in Pseudocode:
proxy_tid = setup_distributed_ipc(<whatever_network_address_of_other_node>, <TID_of_target_process>)
... Starts a new thread, sends something to the other node starting a corresponding proxy thread in the other node. Then the proxy-thread just relays all messages to the other proxy_thread over network, which in turn relays it to <TID_of_target_process>. The other thread can send messages the other direction the same way.
A more sophisticated proxy thread could implement other messaging schemes like broadcasting.
For distributed IPC to make sense, we need to extend messaging to support sized messages (e.g., bigger than 4 bytes / one value), as pointers don't make sense in a distributed environment.
What do you think?