I realize this isn't a free support group, but I'm hoping some experienced Mongrel2 user/developer will spend some time giving me advice.
We're considering building a web service using a Mongrel2/ZMQ-based architecture. From reading through the ZMQ and Mongrel2 docs, I'm thinking it's a (very) good match but I'd love to hear opinions and hints from devs with experience (as this will be my first M2/ZMQ app). Facts and questions: - The web service will run on a single Mac OSX box and must support a number of operations, which in turn are implemented by a number of services (ZMQ server processes). From the web service client's perspective everything is synchronous REQ/RESP. - We already have existing Ruby code that implements the functionality of the services, but we would need to wrap ZMQ network code and monitoring to convert what are basically simple Ruby shell scripts into ZMQ server nodes. It is not only the web service that connects to these services. Internally we could have other programs that are clients. (Any hints on error handling and monitoring, would also be appreciated) - One of the operations is particularly interesting. It starts an application-specific http server which the web service client can send http requests to (via a "send command" operation). So the web service actually acts as a proxy for that other special http server. Now, I was thinking that since mongrel2 has proxy support, I would simply implement this operation by first starting the app-specific http server and then *dynamically* changing the mongrel2 config by adding a proxy for that server. The client would then connect to the app-specific server via the proxy. Is that possible? Does it sound reasonable? - Finally a questions about security. I see that Mongrel2 easily supports SSL. But is there any other features that make security easier. Particularly I'm looking to do authorization at the service level. Each of those Ruby services need to authorize all requests that come in - whether they come from the web service or internally. Would all http related information (e.g. Basic Auth) be relayed from mongrel2 to the ZMQ server processes? How could a non-mongrel zmq process connect to a service and send the same auth information (was that question clear)? Thanks, - Karl
