You do also have the option of writing a bridge in Java, and have your plugin communicate with it. The java bridge would be a server to zorro and a client to the broker.
This way, you can:
* Have the Java bridge send PostMessage, and
* Both the plugin and the bridge can be single-threaded (usually ideal)
* Have a native C++ plugin.
If you're not sure which protocol to use between the two, just use the DTC protocol and recycle my plugin.
Rationale is similar to what you see here:
https://www.sierrachart.com/index.php?page=doc/helpdetails76.html(Mind you, these people have strong opinions, but I share some sentiment.)