Engineering Chronon

All the technical and design details on Chronon - The DVR for Java

Chronon and Vaadin join forces


Discovering Vaadin

Last year when designing our Chronon Recording Server, we were looking to choose a nice web framework among the tons available for Java. Now, at Chronon, we love Java but we are no experts at javascript. In fact the weakly typed nature of javascript and the cross-browser issues makes me cringe at the thought of using it for large scale applications. That said, if you want to create a modern day web app, you gotta get down and dirty with it.

Thus our first choice was GWT which allows keeping all our code in Java and dealing with javascript at a minimum. However, when we started looking at GWT we realized it was really a disparate bunch of components and we still had to do a lot of work to create a 'framework' around it that would make those components work together well in an actual application.

That is when we ran into Vaadin; and it was love at first sight! Vaadin allowed us to create a full modern looking web application entirely in Java, almost like a Swing application, without even knowing there was any javascript/css involved. The components and themes out of the box were already beautiful and modern looking and to change the look we didnt have to resort to a ton of css hacks. It was nirvana and we now cant think of using any other framework!

Desperation turned love affair

That said, as is true with all things real life, we did run into some issues, of our own making mind you. Apparently we were using a 3rd party Vaadin component 'ICEPush', to allow automatic ajax-push in our web applications. The problem was that once in a while the 'push' would somehow cause the UI to become all gobbldygook. A lot of our customers were reporting this issue too. Although refreshing the page would make things go away, it was definitely annoying for the people using our product.

So we turned to Vaadin's Commercial Support to see if they could solve the issue. And as would be expected, the support team asked to somehow replicate the issue on their side, so they could go with a debugger to look for the issue. Now here is the thing about the Chronon Recording Server, to replicate an issue in it, you have to setup a bunch of processes: the recording server process, the controllers, the java apps that will be recorded. Once you have done that, the support person has to play with the GUI for an indefinite amount of time before they run into that error, and *hopefully* they will have a breakpoint set in a location which will allow them to find the root cause of an issue. And if they miss putting the breakpoint in the right place, they have to try all this all over again. Also did I mention, we would have to send them our entire source code so they can look at where exactly we call icepush from our code. As you can at this point, we are at an almost impossible situation to reproduce and resolve the issue. It could take many, many weeks to solve this and we would end up spending a ton of money to purchase all those support hours.

That is when it dawned upon me. Why not use the Chronon Recorder to record our Chronon Recording Server! So we made a Chronon recording of the bug on our side and handed it to the Vaadin Support Team to playback in the Chronon Time Travelling Debugger. The bug was solved in 20 minutes flat!

Yes, something that would have taken weeks of time, and tons of effort on both teams to communicate the issues, and cost us thousands if not tens of thousands of dollars was solved in 20 minutes, with no communication required, other than sending the recording file!

Vaadin and Chronon, now together

As you can guess, both the Chronon and Vaadin executive team thought we should definitely take this to the next level. So from today, Chronon is now part of Vaadin's Pro Account. If you are a Vaadin Pro account user, if you contact their support team with an issue, they will send you a free copy of Embedded Chronon which you can use to record the bug in your application. Then you can just send them the recording and that is all that is needed for the team to replicate and resolve your issue. No need to create sample programs or going through tons of hours of communication to set up things on the other side to reproduce the issue. You can even send them a recording created using Chronon Recording Server or Chronon Time Travelling Debugger and they will make use of it. 

We believe this partnership will help Vaadin users to not only rapidly create rich web applications but also not worry about any issues or long standing bugs in them.

Learn more about Vaadin and their amazing framework and their Pro Account Services.


Filed under  //