Huffington Post Chooses MongoDB, Scala and Angular JS
Written by Kay Ewbank   
Thursday, 15 August 2013

The rise of MongoDB continues with the news that the Huffington Post is moving from its current MySQL/PHP stack to use MongoDB, Scala and AngularJS.

John Pavley, CTO, Huffington Post , said in a blog post that  while MySQL is one of the best databases around, the team behind the Huffington Post’s new content delivery system, which is codenamed Athena, wanted more freedom to be able to model the complex documents that news stories have become in the 21st century.

He said:

“I'm sure HuffPost readers would be disappointed to find a news story that didn't have relevant images, videos, tweets, and Facebook posts embedded inside it. For that task we're using MongoDB. While MySQL requires lots of up front planning and modeling to translate a news story into a collection of data fields and datatypes, MongoDB is a new kind of database that natively stores documents with flexibility. As our idea of what a news story evolves over the next eight years, MongoDB will help us keep pace.”

In the explanation of why they’re moving from PHP to Scala, Pavley says that while Huffpost, like Facebook, is built upon PHP:

“it has its warts and its limits, especially when it comes to handling a high volume of users. Facebook has worked miracles around the scalability issues of PHP. But to write humanistic code, code that isn't micromanaged by merciless engineering managers, (our content delivery system) needed a new programming language at her heart. The Athena team chose Scala (and its Play framework). “

The reason for the choice is that:

“Scala gets the benefits of Java's performance and stability while enabling developers to write simpler, more robust, and more reusable code. While keeping things simple, safe, and reusable can be done in PHP it takes a tremendous amount of effort. Scala enforces humanistic coding by default. (You can write bad code with Scala but you have to work hard to do it.)”

AngularJS has also been added to the mix to:

“tame JavaScript and HTML. AngularJS extends the vocabulary of HTML and the interaction of JavaScript to keep data on the server and data on a webpage automatically synchronized. It's a more humanistic approach because with AngularJS there is far less code to write and maintain.”

The writing and editing team at the Huffington Post will be able to use the new system to collaborate on stories in real time, seeing the changes being made with one editor in control of the other. Pavely says this ability to manage real-time collaboration where the developer relies on the AngularJS framework and Scala to manage collaborative changes is key.

“ AngularJS monitors the text field in one web browser, notifies the Scala code back on the server of a change, and the Scala code notifies the text field in the second web browser. The amount of MySQL, PHP, HTML, and JavaScript code required to make this realtime collaboration happen would have been staggering and hard to reuse. Athena's modern tech stack with MongoDB, Scala, and AngularJS, makes it simpler for the developer and easier for the editors: No need to "check out" documents, no arbitrary limits on the number of collaborators, minimal locking of the shared document, no submit button required. A much more human way doing things for everyone involved.”


More Information

HuffPost Brings Real Time Collaboration to the Newsroom

Related Articles

Guardian moves on from Java and Oracle

MongoDB Overtakes Access       



To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.


raspberry pi books



or email your comment to:



Google Introduces PaliGemma, A New Visual Language Model

Last week's Google I/O saw the introduction of PaliGemma, an open vision-language model (VLM), together with some details of what's coming in Gemma 2. 

Wasmer's py2wasm Compiles Python To WebAssembly

py2wasm is a compiler that turns your Python code into WebAssembly, "running it at 3x faster speeds".

More News


Last Updated ( Thursday, 15 August 2013 )