Vaadin & Elastic Search

I recently started to read about Vaadin and du eto many positive reviews Wwe decided to start evaluating Vaadin for our product dashboard implementation.
Dashboard will be widget based, and every widget will have its own datasource defined.
I’d like to use ElasticSearch as dashboard backend, so each datasource corresponds to one document type.
The document itself is JSON.
I am wondering if somebody can comment on that, namely:

  • is that sound at all. Has anybody played with Lucene based datasource so far?
  • is JSON format something that is Vaadin’s sweet spot?
  • if it is, what would be a good starting point for addon implementation

Many thanks,


Firstly : yes, you would be able to able to write a dashboard accessing an ElasticSearch backend; totally do-able.

But - is it a kind of sweetspot? No, not particularly. Vaadin is a server-side RIA. All of the business logic is defined in the web-app. UI Definition and events pass backwards and forward between the browser (which renders the UI using GWT Widgets) and the web-application. In your case, the web-app would then talk to the ElasticSearch webapp. If you’re not familiar with the archtitecture of Vaadin (no reason why you should be!), these
slides from Joonas’s presentations
should be a bit clearer and in depth than that last sentence…

You could design your own GWT Widgets to talk to ElasticSearch directly from the browser, and then use those widgets in Vaadin - but then if this is all the application does, you’re rather missing the advantages of Vaddin in the first place!

FWIW, we do Lucene searches in our application, but within our own server (as opposed to ElasticSearch); we already had a client/server interface definition for the search/results, and so we simply wrapped it up in our own Container/Datasource. It is not difficult to do.

I’m not trying to put you off Vaadin (far from it!), but I wouldn’t want you to start off on the wrong foot. If you just want a light browser dashboard, just talking directly to ElasticSearch, then I suspect Vaadin’s not a good fit for that usecase. If, however, there’s a whole lot more to it (and if your developers/products are java/JVM based) then it’s probably worth looking at more.