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

Reply via email to