

Yahoo Pluton - nose
https://github.com/yahoo/Pluton

======
tptacek
So, from what I can tell, Pluton : C/State-Threads :: Twisted : Python/select.
It's a hybrid evented/threaded framework using cooperative thread scheduling,
but it hides the thread scheduling in its API to make programming feel even
more natural.

There are a lot of random projects that chased this idea; maybe someone here
can list a couple? I'm just fascinated that Yahoo fielded major apps built on
this one. Neat!

------
harlowja
Very cool, glad that got out, it's good to see stuff like this happening. Its
been in use for 5+ years so hopefully others can find use for it as well.

------
jeffreymcmanus
Stop linking to github home pages without context.

~~~
eru
The Readme.txt at the bottom provides some context.

~~~
camtarn
But you have to know to scroll down to it, and for non-GitHub users, that
won't happen until one day they randomly scroll down and notice there's more
info cunningly hidden at the bottom of the page.

GitHub (probably correctly) seems to prioritise ease of use for people
actually using it as a source repository over ease of discovery for projects
using it as their homepage. Which is why projects shouldn't use it as a
homepage, and people shouldn't treat it as such, until it gets better landing-
page support.

I suppose there may be some argument in that non-GitHub users may not be the
target audience for these projects, mind you :)

------
schumihan
Is it similar to ZeroMQ(<http://www.zeromq.org/>)?

~~~
Loic
Kind of, as I am using Mongrel2 and ZeroMQ, I cloned the repo and took a look
at it.

ZeroMQ is a message passing toolkit with a lot of goodies where Pluton is to
solve the concurrency problem, that is, when you generate a web page, you can
access maybe 20 different services and merge the results in the page. If the
20 services requires each 5 ms to answer, you get 100 ms compute time when
called in series, but imagine you can call the 20 in 2 batches, you can get an
optimal 10 ms.

This what is provided by Pluton, a framework to call many services in parallel
to improve the overall latency of your application from the end client point
of view. Each small service run by default on the same system, but they can in
return use ZeroMQ to communicate with other components.

The HTML documentation of the project is really good.

~~~
schumihan
Can we build a system above ZeroMQ for such purpose easily? I think the async
semantic of ZeroMQ is suitable to mitigate the latency of multiple RPC.

------
benatkin
Is this similar to <http://mongrel2.org/> ?

~~~
tptacek
It's orthogonal to Mongrel. It's more a lightweight alternative to ACE, with
co-op threading.

