days
-1
-6
hours
0
0
minutes
-5
-6
seconds
-2
-9
search
Out with the old

Netflix.com drops Java renderer, adopts Universal JavaScript

Natali Vlatko
Waving image via Shutterstock

The folks at Netflix.com want your startup to be smoother and faster, so they’ve let go of their Java renderer for a Universal JavaScript solution that utilises shared rendering logic via Node.js and React.js. The changes bring about better performance for users.

Netflix.com have decidedly amped up website performance by ditching their server-based Java renderer in favour of a Universal JavaScript solution. By delivering less HTML markup in the process, the effort has led to an impressive 70% reduction in startup time.

Calling the change “long-awaited”, Kristofer Baxter from the Website UI Engineering Team said that startup performance in particular had been made a first tier priority. In their old rendering days, the server featured Java with Tomcat, Struts and Tiles. JavaScript, primarily jQuery, was found on the browser client.

The faster option

Universal JavaScript, also known as Isomorphic JavaScript, now makes up the whole of Netflix.com’s rendering pipeline. The new UI renderer works using Node.js and React.js, where rendering is completed from the server. They’re also able to render changes entirely on the client after initial markup and React.js components are transmitted to the browser.

This new setup provides a good amount of flexibility, meaning the app can render “the exact same output independent of the location of the rendering”. Baxter says that the hard separation is no longer present and it’s far less likely for the server and client to be different than one another.

Without shared rendering logic we couldn’t have realized the potential of rendering only what was necessary on startup and everything else as data became available.

Their previous setup meant that visitors on Netflix.com would need to wait it out for the Java tier to generate the majority of the response needed for the entire page’s lifetime and deliver it as HTML markup. “Often, users would be waiting for the generation of markup for large parts of the page they would never visit”.

By bootstrapping the client view, less gets loaded and a visitor’s waiting time is reduced, with the team able to easily change the amount of the total view the server generates. On top of the reduction in processing time on the server, the team have also benefitted from their rendering being consolidated into one language.

Baxter also mentioned that while performance work is still ongoing, Netflix would be looking into Service Workers, ASM.js, WebAssembly and other web standards to contribute to a better website experience for users.

Author
Natali Vlatko
An Australian who calls Berlin home, via a two year love affair with Singapore. Natali was an Editorial Assistant for JAXenter.com (S&S Media Group).

Leave a Reply

Be the First to Comment!

avatar
400
  Subscribe  
Notify of