Hacker News new | ask | show | jobs
by pquerna 4092 days ago
The crew at Mailgun are kinda doing this, and its been enabled by vulcan proxy:

https://github.com/mailgun/vulcand

At first, sure, Vulcand is just another reverse proxy, but what they have been doing is registering individual HTTP handlers with the proxy -- into etcd:

https://github.com/mailgun/scroll

(there is a python implementation somehwere too, just can't find it)

What's neat about exposing these individual HTTP handlers, is now your reverse proxy can produce metrics, apply circuit breakers, etc, all in a central way, but your "micro" service just has to register with etcd:

http://blog.vulcanproxy.com/vulcand-news-circuit-breakers-be...

So, you end up with an architectural style where you can deploy a single HTTP handler as its own service, similar to what the article was pointing to, but in a multi-lanaguage approach, where HTTP is the communication method.

1 comments

Very similar :)

We do use a proxy/router. The main difference is that instead of using etcd for service discovery we are deeply integrated with Mesos.

Our framework scheduler does the registration/deregistration, resource allocation/colocation, etc.

The main reason for a proxy at this point is to have unified metrics collection, distributed routing (each reverse proxy knows only its immediately connected downstream operators), tracing (think dapper), and facilitating the communication with other languages (c++, java, go, js - node, ruby, etc).