

Simpler, Cheaper, Faster: Playtomic's Move From .NET To Node And Heroku - jpmc
http://highscalability.com/blog/2012/10/15/simpler-cheaper-faster-playtomics-move-from-net-to-node-and.html

======
Rastafarian
IMHO these guys just didn't architect and configure .NET to suit their loads.
ADO.NET connection pool is adjustable, it's trivial to setup a (NodeJS style)
single DB connection per app pool.

~~~
ctrlaltesc
I'm also not seeing anything here that couldn't be done in the JVM either. The
numbers aren't spectacular for eight dedicated hardware boxes.

Well, good for them for choosing a technology that they enjoy and making it
work. There's more than enough room for another mature application platform.

------
meaty
They seriously must have been doing something wrong. We scale to 2000 requests
a second on a good day on one not very hefty quad core SQL server 2008 box
with 16Gb of ram and 2 front end web servers and a virtual active directory
host. The requests are between 2-4 SQL queries a hit as well and can return
hundreds of rows with 6 way joins galore thanks to nhibernate. Latency per hit
is always less than 80ms.

We've done literally no tuning as well. It's all out of box. It just sucks up
the requests and spits them out with a smile.

~~~
benologist
2,000 reads a second is not the same as tens of thousands of rows being
updated or inserted a second. MSSQL is also not the bottleneck, flushing data
to it is decoupled from the requests.

~~~
meaty
We do that as well. Our architecture is CQRS based so we're doing massive
batched denormalisation and heavy writes.

------
vyrotek
Nice write up. Things have certainly changed since the first time I saw
benologist comment about the original architecture on HN. At the time I was
excited to know there were other startups using .Net.

~~~
aespinoza
I know, I was also excited. We feel lonelier now.

Still by reading the article I still don't see how moving to another framework
+ platform made it better. Maybe our case is so very different.

I have considered the move for quite a while, every time I run the performance
tests, .Net comes faster.

Maintainability wise, it is still easier to manage .Net applications than
NodeJS. The tooling for testing (and not just Unit Testing) is abundant and
mature.

Cost savings are also debatable. In our case, we measure Infrastructure Costs
+ Maintenance Costs, and windows is way cheaper putting the two together. Now,
they are using a PaaS, so that might make it worth while. For us a PaaS is
really not an option since we need a lot more control.

I do agree with the mongoDB choice. I love Mongodb. We us eMongoDB. But we
have so many problems because it never reclaims deleted data. The size just
grows. And that is maintenance hell. We are analyzing potential replacements.

For us, NodeJS still doesn't have that much to offer. :D So we are sticking
with .Net.

~~~
Rastafarian
Did you had a look at .NET 4.5? It has WebSocket support and very convenient
async keyword. Seems to me it can match easily match Node for a site like
Playtomic.

(I was replaying to benologist's comment, but there's a bug in HN system)

~~~
j_s
While .NET 4.5 makes a lot of things easier, there's nothing new. Sweeping
generalization: it's all been syntactic sugar since generics arrived in 2.0.
(This was especially evidenced by all the magic done by the Rx people as the
only MS team interested in supporting 'legacy' framework versions.)

For example, the 'official' WebSocket support (SignalR):

<https://github.com/SignalR/SignalR/issues/96>

    
    
      > Please support .NET 3.5 Please
      > ...
      > Of course it's technically possible, but it's not a goal.

------
valdiorn
Highscalability.com just hit my company proxy and was classified as a "malware
site"... wtf?

