I was mistaken in thinking the RPC dealer would be a problem. Let me explain… Before I had even considered Autobahn/WAMP, I was going to use an architecture like this:
Web frontend -> socket.io -> Node.js -> Protobuf+Asio -> C++ Backend
Then I discovered Autobahn/WAMP, and naively thought I had to use this architecture:
Web frontend -> Autobahn|JS -> Node.js -> Autobahn|JS -> Crossbar.io -> Autobahn|Cpp -> C++ Backend
That long chain above explains why I didn’t like the idea of Crossbar.io being the “middleman” between Node.js and C++.
But it turns out I can just do this:
Web frontend -> Autobahn|JS -> Crossbar.io -> Autobahn|Cpp -> C++ Backend
In my original architecture using Node.js and Protobuf+Asio, the Node.js server would have ended up performing a “dealer” role very similar to Crossbar.io, except the dealing would have been more hard-coded and aware of the application details.
In the original architecture, a change in the C++ backend API would likely require changes to the Node.js code. But the dealer role of Crossbar.io eliminates the need to maintain the backend API in two different languages (C++ and Node.js)! I’ve therefore warmed up to this RPC dealer concept.
On Tuesday, October 14, 2014 5:53:09 PM UTC-3, Tobias Oberstein wrote:
Great! If I remember correctly, you don’t like the fact that WAMP not
only routes PubSub events (via a broker), but also routes RPCs (via a
dealer). However, the latter is a core and innovative aspect of WAMP
that brings a lot of flexibility. So let me ask (probably again): what
problem do you see/expect with RPC routing?