[Catalyst] Why Catalyst instead of Ruby on Rails?

Sam Vilain sam at vilain.net
Tue Nov 15 05:04:51 CET 2005


On Fri, 2005-11-11 at 22:09 -0800, Jake wrote:
> I was wondering -- just how do you scale Catalyst to serve truly large sites?
> Hundreds of $3k+ Apache/mod_perl servers?
> I think that's what those big guys do -- it does work. But who wants
> to pay for all that? Even if you can afford it.
> 
> Apache may be the best but it isn't the fastest -- even in recently version.
> 
> Has anyone considered building a really fast HTTP server into
> Catalyst? I don't think Rails has that, does it?
> 
> Here's what I'm thinking: Catalyst + Perlbal (epoll based) + ESI
> (dynamic content caching)

Let me just chip in with a little recommendation/comment here...

A three tier architecture, with lighttpd as a front end, talking FastCGI
to a Catalyst back-end, and a Postgres or InnoDB back-end, will scale a
long way on its own.  You can easily add web servers, application
servers, etc - and both Postgres and InnoDB support replication and
clustering, which helps many applications.

Being able to make things go faster like this without code changes is
extremely useful, and this choice of technology is industry standard and
proven.  Lighttpd breaks down?  Use LiteSpeed or Zeus.  CPU always busy?
Buy another application server, or consider lighttpd's CML if you have
lots of non-customised content being built too much.  Database not fast
enough?  Buy lots of fast disk and RAM, and rent a tuning specialist DBA
to fit it properly, and perhaps analyse the transactions and give
training and advice to your application developers.  It's all very well
tested ground.

Note that there are some quite clearly defined problem spaces where the
performance of Pg or InnoDB can't match that of a commercial database.
So ideally, you should know whether those situations affect your
application and if so, know when you need to ditch your database rather
than spend $200k and wait a year of development time to implement a
missing enterprise feature.

Sam.




More information about the Catalyst mailing list