Update Nov 18 2013: Please read this article to learn about the current technologies we use.
We are asked about the technology landscape at Doodle from time to time, reason enough to talk about it in our blog. The operating system (OS) of our production servers is Debian (a Linux flavor). Our database management system (DBMS) is MySQL. Recently, we started using MongoDB as well; if MongoDB keeps its promises, and so far it does, we will slowly but steadily persist more and more pieces of information with MongoDB and fewer and fewer with MySQL.
Doodle is basically a Java application and Tomcat its web container. For the time being, we still use Tomcat 6 but are going to switch to Tomcat 7 soon. However, when browsers (or API clients such as our Android app) send requests to doodle.com, they do not directly interact with one of the Tomcat instances but with one of our Apache servers. The Apache servers are responsible for balancing the load and for delivering static content (e.g., images) without having to involve any of the Tomcat instances.
In the back-end, we heavily rely on Hibernate for O/R mapping between Java’s object model and MySQL’s relational model and are waiting for Hibernate 4 to become JPA 2 compliant (Doodle, that is, not Hibernate). In the front-end, we heavily rely on jQuery. And in addition to the Java SE 6 APIs provided by the Java runtime environment and the Servlet API 2.5 (soon 3.0) provided by Tomcat, we use quite a few third-party libraries, many of which are sponsored by the Apache Software Foundation.
Finally, we are learning Scala (well, yours truly is). The switch from Java to Scala is not going to happen anytime soon (certainly not before Java 7 and maybe not before Java 8), but this language made in Switzerland is exciting.
by Paul E. Sevinç, Doodle CTO