Last week, I have joined
Zenexity. Joining a new company, is a great adventure. By meeting new people and
working on different projects, you learn new things and discover other
ways of doing things. This leads to impassioned discussions and
knowledge sharing. On my side, I am starting to dig deeper into Scala.
Zenexity is the company who created the
Play framework,
a java web framework, which as you probably know, drops the craziness
complexity of JEE to focus on simplicity.
In a recent
presentation, I have spoken about collaboration. I notably mentioned that in the last five years applications and medias which integrate
natively collaboration have known impressive success. Looking at collaboration is interesting, as it exhibits today web application concerns.
Integration of multiple data sources
Enabling collaboration means dealing with several data producers. Typically, for each you will have a connection, and one of the application responsibility will be to manage those connections. The management becomes harder when the number of producer raises. For instance, the application may reach a connections number limit, so in order to scale the application will need to detect idle producers for closing temporally their connection.
Dealing with large amout of data
When you add more potential data producer, this generally ends with more information to manage or at least more information you would like to store, for instance for statistics purpose. To achieve scalability you may choose a non relational database.
Realtime interactions
To ease collaboration, you need to provide a way for users to interact between them. Basically each user should be able to send notifications to others, directly or indirectly, and to do it efficiently traditional polling is not efficient.
The new
coming release of Play tends to tackle those concerns. It will
provide
powerful abstractions
which will enables you to write simply reactive web
applications. Applications which, integrate multiple data sources, support multiple data stores, and could use
efficient bidirectional communications.