<div dir="ltr">We are using: a single Amazon Linux AMI, RabbitMQ, Cassandra 2, python 2<div><br></div><div>We use pika with tornado and libev for the <span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">nyt⨍aбrik wholesale and retail pieces; our internal clients use Java and PHP.</span></div>

<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">We use shovels - lots of shovels - to interconnect.</span></div>

<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">In production we have a RabbitMQ client 3-cluster and a core 3-cluster in each region on c1-xlarges. A proxy cluster of c1-mediums in Virginia </span><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">connects clients to the client clusters. All services are parallelized so we can add more cores and clients.</span></div>

<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font color="#500050" face="arial, sans-serif">The retail layer autoscales and use c1-mediums with a single rabbit shovel-connected to one of the core rabbits. Each python websocket/sockjs gateway supports up to 100K clients.</font></div>

<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">We autodeploy into subnets within Virtual Private Clouds in AWS. Clients are routed via least latency to the fastest healthy region.</font></div>

<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">Of the technical components, the gateway is the most complex. We will be moving it into open source in pieces and the first piece is likely to be the python websocket/sockjs libraries which, frankly, beat the crap out of most other stuff out there and fully conform with the relevant standards. It can be loosely thought of as a C co-process managed by python, and as such, may be possible to reuse in other languages/environments.</font></div>
<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">We have a 12-node Cassandra cluster across the 2 regions / 6 zones. It is used for persistence of messages and as cache. We do not use persistence in RabbitMQ. Our services are idempotent and important messages may be replicated multiple times creating intentional race conditions in which the fastest wins.</font></div>
<div><font color="#500050" face="arial, sans-serif"><br></font></div><div><font color="#500050" face="arial, sans-serif">Although it may seem complex, </font><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">nyt⨍aбrik has simple components and is mostly principles and plumbing. The key point to grasp is that there is no head, no master, no single point of failure. As I write this I can see components failing (not RabbitMQ), and we are fixing them so they are more reliable. But the system doesn't fail, users can connect, and messages are delivered, regardless - all within design parameters.</span></div>
<div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px">Michael</span></div><div><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br>
</span></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 8, 2014 at 2:58 PM, Michael Klishin <span dir="ltr"><<a href="mailto:mklishin@gopivotal.com" target="_blank">mklishin@gopivotal.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 8 Jan 2014, at 23:26, Laing, Michael <<a href="mailto:michael.laing@nytimes.com">michael.laing@nytimes.com</a>> wrote:<br>

<br>
> Our premier online offering <a href="http://www.nytimes.com" target="_blank">www.nytimes.com</a> has a new look and new underpinnings, now including a messaging architecture implemented using RabbitMQ.<br>
><br>
> This architecture - nyt⨍aбrik - has dozens of RabbitMQ instances spread across 6 AWS zones in Oregon and Dublin. The instances are organized into "wholesale" and "retail" layers. Connection to clients is via websockets/sockjs.<br>

><br>
> Upon launch today, the system autoscaled to ~500,000 users. Connection times remained flat at ~200ms.<br>
><br>
> nyt⨍aбrik provides subscription services for breaking news, video feeds, etc. and will add more event based services. It also supports individual messaging related to subscription status for registered users.<br>
<br>
</div>Michael,<br>
<br>
Congrats on the launch!<br>
<br>
I’m curious what technologies and RabbitMQ clients do you use and plan on adding<br>
in the future?<br>
<br>
MK<br>
<br>
Software Engineer, Pivotal/RabbitMQ<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</div></div></blockquote></div><br></div>