March 10, 2013

mongoDB, scala, play...

I was asked to develop a web application with a large number of concurrent accesses and a big database. I am a Java developer but I thought to scala for the following reasons:

Database: mongoDB
MongoDB is an open source, document oriented database designed for ease of development and scaling. It allows multiple clients to read and write a single corpus of data using a locking system to ensurethat all clients receive a consistent view of the data and to prevent multiple applications from modifying the exact same pieces of data at the same time.

Driver: ReactiveMongo
ReactiveMongo is a scala driver that provides fully non-blocking and asynchronous I/O operations. It is designed to avoid any kind of blocking request. Every operation returns immediately, freeing the running thread and resuming execution when it is over.

Presentation: play framework
Play is the high velocity web framework for java and scala. It is based on a lightweight, stateless, web-friendly architecture.

of course, I can use Spring scala for business layer.