Content feed Comments Feed

Managed Mayhem

More Than 99 Billion Cats Herded

Coldfusion Is Not Scalable

Posted by Jim Rising On February - 11 - 2010

Even after 12 years of developing enterprise ColdFusion applications, I’m still amazed that I hear statements like this. I recently left a job where I helped to build a highly scalable application for the financial industry using CF. Our team used EXTjs, MySql, and Railo as the CF parser. I am still ‘invested’ in this project, and so I was talking with the COO yesterday and he mentioned that there was another developer they were talking with who said … ‘Coldfusion is not scalable’. No explanation given… just that it wasn’t scalable. I was actually a bit irritated, and so I asked the COO to just ask him ‘Why?’.

The enterprise versions of Adobe Coldfusion, Railo, and OpenBlueDragon all come with built in clustering using J2EE session management. Adobe’s version 9 comes with Hibernate support built-in… and Railo is soon to follow suit. Companies like Etrade, NASA, GoldLeaf, Caterpillar… all use ColdFusion. All of the parsers support enterprise DBMs like Oracle, MSSQL, Postgres, and MySql. All of the parsers come with a form of memory caching.

My only ‘guess’ is that he’s possibly talking about it not being financially scalable. Perhaps he doesn’t know that there are now 3 different open source CF parsers available? (openBlueDragon, Railo, Smith) Part of the reason why MySpace moved away from Coldfusion was primarily a licensing issue. Adobe ColdFusion licenses are not cheap, but they are justifiable. Even if he was talking about a financial scalability issue due to licensing… it’s just something that you build into your business model on the front end to make sure that you have the money available either through investment or financing.

Either way, we had already addressed the financial scalability issue by choosing Railo as the parser, and I built in my own clustered session management using in memory sessions backed up by persistent sessions in MySql. Combined with sticky sessions in Apache, a front end load balancer and simple MySql replication, and you have a pretty solid HA setup. It’s not J2EE, but it worked. We were also planning on rolling it into the cloud when we released it into production, and so those MySql servers would have had up to 32GB of RAM and 8 processor cores available to each of them (vertical scalability), with the web servers being horizontally scalable as much as needed. Down the road we could have always moved to MySql Clustering when it was actually needed, giving us true horizontal scalability. I’d say that’s pretty scalable.

My point is that it really is not the language that makes an application scalable. Certain tools can make it easier (Enterprise CF vs. Standard) … but it is really dependent on how the application is designed in the first place. Most of the HA scalability issues can (and should) be mitigated to the network and operating system layers rather than handling them within the application layer anyhow. Saying ‘Coldfusion is not scalable’ seems to me to be a real misunderstanding of how highly available applications are really built.

7 Responses to “Coldfusion Is Not Scalable”

  1. With ColdFusion 9 Adobe is adding in the ability to run CF in the Cloud at no additional charge.

  2. Jim Rising says:

    My understanding of the EULA was that it is limited to a single instance of Standard, or 10 instances of Enterprise. Still great stuff.

  3. Hey Jim!

    I think people still see ColdFusion as PHP’s ugly, red-headed stepchild. True or not, that’s the perception a lot of people have. There are a lot of people who insist on MySQL in situations where Postgres is superior, or PHP where Python is superior. As we all know, people choose what they are comfortable with. The problem is when they tailor those opinions into definitive statements. I’ve seen this happen as well.

    I agree with you that CF can be scalable in both the volume and financial aspects. It’s possible that the scalability this person was referring to was labor oriented. It’s darn hard to find *good* CF developers. If I were to walk into a project where CF were used, that would be my primary concern. However, I’d do a little due-diligence on the subject before calling it “not scalable”.

    Brendan

  4. Dan Uyemura says:

    The reality of the matter though, is CF is becoming a (even more) of a boutique language. It’s going to be more and more of sell to get clients and companies to use it. Which means, as great or not the technology is is really irrelevant in terms of how hard it’s going to be for you to continually find work.

  5. Jim Rising says:

    @Brendan … RE: ‘It’s darn hard to find *good* CF developers’ … I think it’s hard to find *good* developers period, CF or not… but I can see your point with respect to labor scalability. The thing is though, you can train that issue away internally if you have the support of the organization by bringing in solid developers regardless of their current toolbox. It is a sort of evangelism. ;)

    Really… once you have the basics down, moving from one language to another is a matter of syntax, and any *good* developer is going to have an understanding of more than just one language anyhow.

  6. Jim Rising says:

    @Dan … I’ve recently started to re-invent myself as more of a ‘Web Developer’ rather than a ‘Cold Fusion Developer’ for that very reason. I’ve got so many other things available in my wheelhouse that it makes little sense for me not to be somewhat agnostic about it. However… I do enjoy CF, and hope to continue developing in it when I have the opportunity.

    @Brendan … I don’t know that everyone only chooses what they are comfortable with. If that was always the case, how would anything *new* gain any traction? I’ve frequently taken on contracts where the client has determined to use a specific technology, and rather than go through the salesmanship to deter them (from say PHP to CF) … I went ahead and developed the project in the platform that they chose.

    Like I said… I don’t think good software comes out of the platform / language you use. Some of these tools are better for certain things… but at the core, a good developer is going to tend towards good (perhaps comfortable?) patterns no matter what language they are using.

  7. Jim Rising says:

    @Brendan … and another thing (insert finger wag here) … CF and PHP both came out in 1995 … so if anything, both are the red headed step children of CGI. ;P

Leave a Reply

About Us

"Managed Mayhem" is a software project development and management blog maintained by Jim Rising. Jim Rising is an Adobe Cold Fusion developer who lives in Murfreesboro, Tennessee with his wife Melissa, their son 'Haven', cat ‘Rusty’, and dog ‘Güenther’. He currently freelances from home.