Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>As far as frameworks goes, <a href="http://ginkgo.readthedocs.org/en/latest/index.html" rel="nofollow">Ginkgo</a> looks promising for building a network service (which is what you're doing). The Python is very straightforward, and the asynchronicity enabled by <a href="http://www.gevent.org/" rel="nofollow">gevent</a> lets you do asynchronous things without generally having to worry about callbacks. The gevent core also gives you access to a <a href="http://pypi.python.org/pypi?%3Aaction=search&amp;term=gevent&amp;submit=search" rel="nofollow">lot of building blocks</a>.</p> <p>Rather than having lots of services communicating over ports, you might look into either <strong>1)</strong> a good message queue, like <a href="http://www.rabbitmq.com/" rel="nofollow">RabbitMQ</a> or <a href="http://www.zeromq.org/" rel="nofollow">0mq</a>, or <strong>2)</strong> a distributed coordination server, like <a href="http://zookeeper.apache.org/" rel="nofollow">Zookeeper</a>.</p> <p>That being said, what you aim to do is difficult, especially if you're not familiar with the basics. It's a worthwhile endeavor to learn about those basics. </p> <p>Don't worry about speed at first. Get it working, then make it scale. Of course, there are directions you can go that will make it easier to scale in the future. <a href="http://zookeeper.apache.org/" rel="nofollow">Zookeeper</a> in particular gives you easy-to-implement primitives for scaling horizontally (i.e. multiple workers sharing the load). In particular, see the <a href="http://zookeeper.apache.org/doc/current/recipes.html" rel="nofollow">Zookeeper recipe book</a> and their corresponding <a href="https://kazoo.readthedocs.org/en/latest/api.html" rel="nofollow">python implementations</a> (courtesy of the <a href="https://kazoo.readthedocs.org/en/latest/index.html" rel="nofollow">kazoo</a>, a gevent-based client library).</p> <p>Don't forget that "fast" also means optimizing your own development time, for quicker iterations and less time cursing your development environment. So use Python, which will let you get up and running quickly now, and optimize later if you really truly start to bind on CPU time or memory use. (With this particular application, you're far more likely to bind on network IO.)</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload