
Building a GeoIP server with ZeroMQ - mikebo
http://bohlander.posterous.com/building-a-geoip-server-with-zeromq
======
fauigerzigerk
I found ZeroMQ via mongrel2 as well. It's absolutely brilliant. It's the
simplest and most versatile way to do async, load balanced services I have
ever seen. Even for plain request/response it's way simpler than TCP alone and
it does all of that without some huge bloated messaging middlware server
infrastructure. It's just a simple in-process library. It really doesn't get
much more complicated than what is shown in the article, even for things like
pub/sub.

mongrel2 makes use of it in a very smart way as well. You don't need to tell
mongrel2 about each and every backend process you're going to use. It's the
other way around. The backend processes you start just connect to mongrel2 via
ZeroMQ and bang they get their fair share of requests. The protocol is
incredibly simple. You could implement it for a new language in an hour. The
mongrel2 + ZeroMQ combination was really an eye opener for me in terms of how
server-side processes should interact. This is going to be big.

------
benblack
I'm very excited to see where this sort of pattern goes. Swiss-army knife
middleware projects are much less interesting to me than the more minimalist
approach possible directly using 0MQ.

~~~
tomjen3
Agreed, message-passing seems to be such a clean way to communicate, both
between different parts of your program and with the world.

~~~
seiji
Welcome to the early 1970s: <http://en.wikipedia.org/wiki/Smalltalk>

------
neeleshs
I started using ZeroMQ for async messaging for my Django project (with pyzmq)
a couple of days back. I use it for pulling data from third party apps and
sending emails from my app. Enhanced user experience greatly because of non-
blocking calls. The APIs abstract the nitty-gritty networking details so well,
that it feels like child's play to build async messaging for WSGI apps.

Great project indeed.

------
gregory80
Thanks for writing this up. I have heard a lot about zeromq recently and have
been wanting to check it out.

I'm interested in using it for message passing and job queueing in particular
from python using tornado.

