Valtech is a new breed of digital consultancy that fuses creative and engineering skills. It is a global company that operates across all stages of the project lifecycle from strategy and consulting, through to user experience, delivery, maintenance and optimization. For more information go to http://www.valtech.co.uk/.
Valtech’s client is a broadcaster that is always looking for new ways to deliver content to a global digital audience. They strive to keep their business competitive by mining the wealth of usage data to provide insight on how to improve their products. Much of this data is published monthly in an in-depth report, however the client had a vision that daily insight should be available to around 2000 stakeholders across the business. To engage the stakeholders the information had to be in an easy-to-consume, stylish format, available on any device. With a strong vision, all they needed was somebody to build it. With tight deadlines, aggressive targets, and a fixed budget the stakes were high and the broadcaster turned to Valtech to make their vision into reality.
Valtech selects the most appropriate technology platform for each customer project. This project required combining data from a NoSQL data store and existing REST APIs to generate bespoke SVG visualizations created on the server. This content would then be presented through a responsively designed website and email channels.
The team compared the leading candidate technologies for the solution, which included various Java Frameworks, Node.js and the Play Framework. The bespoke visualization framework would require extensive data manipulation, including sorting, grouping, mapping and combining. Scala’s powerful support for such operations, when combined with implicit typing, lambdas and other language features, made it a leading choice. The team decided that the resulting codebase would be smaller, easier to understand and maintain than the alternatives.
Scala’s interoperability with Java would also allow the use of Apache Batik for transcoding of the SVG visualizations into JPEG images for clients that did not support SVG. Email integration was trivial using the Java Amazon AWS toolkit.
Play was selected as the most suitable web framework for the project’s purposes, along with other components in the Lightbend Platform.
Valtech creates project teams by integrating UX and UI experts with server-side developers. Play appealed to UI users in many ways, including:
Easy Installation
The development server is simple to install, run and update on development machines.
Independence
Play provides separation of concerns, which allows UI developers to produce and test content without the need for server-side developers.
HTML Templates
The HTML template language is powerful but simple; it can be used not only for web pages, but also generation of email content.
Quick Edits
The Play development server automatically reloads upon file changes, without having to manually compile and restart the server.
As well as making UI developers happy, Play provided benefits for back-end developers, including:
Familiarity
The choice of a web framework that uses the MVC pattern reduces the learning curve for developers familiar with ASP.MVC, Ruby on Rails or Java MVC frameworks.
Scalability
The architecture was designed to scale to 2,000 users. The use of Play’s asynchronous actions and Scala’s futures allowed parallel database and network operations to be dispatched simultaneously, without blocking web servicing threads. Lightbend’s Akka toolkit and Spray IO provided essential functionality for this.
Testability
Valtech advocates Behavior Driven Development, and was therefore looking for a toolset optimized for test-first automated testing. Play provides a test API, which when used in conjunction with ScalaTest and ScalaMock, allows easy creation of tests. ScalaTest provides DSLs for Gherkin and RSpec syntax, on which all the automated tests were built.
Documentation
The team found the online documentation, with extensive examples, really helped to jump start development.
The first release of the solution was delivered in just 12 weeks and is in use today. The customer is very pleased with the results. Valtech have enjoyed using the Lightbend Platform, and strongly believe that it was the right choice for the project.
Currently at Valtech, the majority of large projects are delivered using HTML5, combined with C#/.Net or Java as the core technology platform. Valtech believes that developers with experience across multiple languages have greater insight and utility. Over the last few years, there have been many Java developers within Valtech that have subsequently used C#. Unfortunately the reverse is not true. There has been muted interest from C# developers in using Java.
Microsoft’s C# has some great features that are not yet part of the Java language. For example, type inference, lambda expressions and LINQ, to mention a few. With today’s technology landscape increasingly involved with cloud computing, mobile and open source, the Java Ecosystem is a major player. It would be great if there was something that could connect those indifferent to the Java language to the power of the Java Ecosystem. I feel this is where the real strength of Scala lies.
Oliver WickhamPrincipal Consultant, Valtech
Scala is a statically typed, feature-rich language that makes it great candidate for enterprise development. It also has functional programming support, which is not matched by any mainstream languages.
However, for a language to be adopted in the enterprise, a robust ecosystem of IDEs, test tools, web application frameworks and middleware must exist. Valtech believes that the Lightbend Platform fulfills that requirement. With the release of Scala 2.10, Play 2.1, Scala IDE 3.0, and IntelliJ support, it is felt that the platform will move toward the mainstream.
Valtech is now using Scala and the Lightbend Platform for other projects, and it is now part of their solution toolkit.
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.