Introducing Akka Cloud to Edge Continuum. Build once for the Cloud. Seamlessly deploy to the Edge - Read Blog
Support

Steering the Future with Scala and Play

A UK broadcaster required an innovative solution to a bespoke Business Intelligence problem. They selected Valtech, a Global Digital Media Agency to turn their product vision into reality. Always looking for the most suitable and efficient tool for the job, Valtech selected the Lightbend Platform; the combination of a Rapid Application Development web framework, scalability, and interoperability with the Java ecosystem made it a compelling offering.

About Valtech

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/.

Gaining Insight

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.

Why the Lightbend Platform?

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.

Harnessing Play for UI developers

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.

Scaling teams and code

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 Solution

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.

Wider Consequences

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.

Summary

  • The concise nature of Scala, complimented by the asynchronous nature of Play Framework and Akka made a solution that scales, without compromising the clarity of the code base
  • Experience shows that the Lightbend Platform consists of technologies that can enthuse Java and C# developers alike, whilst creating quality solutions for the enterprise
  • For Valtech, the Scala ecosystem has level of maturity that opens the floodgates for usage in the wider development community

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.

GET IN TOUCH

 

Talk to an Expert

Tell us what you’re building, and we’ll
tell you how we can help.

Contact Us