Does Vaadin exploit multi cores ?

I dicided to change the language, now i develop with scala (another world!).
As scala may use the Akka library (concurrency programming) i am asking some questions.
Does Vaadin exploit the multi cores and how?


Since Vaadin server side applications are hosted on some Servlet container ( Tomcat , Glassfish , Jboss etc ) that do make use of all your CPU cores , Vaadin ( Server side ) will make use of all your cores too .

But note it will not magically use all your cores for a single request, but when many end users simultaneously make requests these will ( under normal circumstances ) be spread across as many cores as you have…

Vaadin is first and foremost a UI framework, so the concurrency it has traditionally been mostly concerned about is between the client and the server. However, there are certainly several interesting use cases where the UI should be updated asynchronously, outside the regular request-response handling. These cases are quite topical now that Vaadin officially supports both server push and polling - mechanisms that can actually make the client receive any asynchronous UI changes.

Vaadin currently sports the “bare necessities” for reasonably safe and effient async access - namely UI.access() and VaadinSession.access(). Often a more elaborate set of tools is required, and I and Leif Åstrand have been thinking about writing a “Vaadin Concurrency Tools” addon at some point. The exact contents of this addon are not yet clear.

Moving from the request-response model to a pure asynchronous one might be an interesting thing to study - for instance, an actor-based design where the client is simply another actor. I may actually end up doing my Master’s thesis on a similar topic.

Internally, there may not be many places in Vaadin that could reasonably exploit concurrency for efficiency. Almost all real-world Vaadin applications are bottlenecked either by I/O, external services such a databases, or client-side rendering.