Writing great code isn’t enough to guarantee successful deployment of applications anymore. The tools that developers use have never been more important, as users demand sub-second response time from applications that run at “internet” scale. 47 Degrees talks about how they decided that the Lightbend Platform was the right choice for them.
About 47 Degrees
Founded in September 2010, 47 Degrees is a Software Development and Creative agency focused in the development of Native Mobile Apps and Highly Scalable back ends and API’s. Their clientele is a mix of large established companies and technology startups, and they focus heavily on user interaction, usability, design, and server scalability.
47 Degrees has numerous customers, each one different from the next, all driven by their own specific domain, issues, business expectations and key individuals. That said, a particular area of specialty for 47 Degrees is Event related applications and back-ends. These applications drive both social networking and event organization for clients during business-critical international events and client meetings.
These events include simultaneous interactions where all users login to perform diverse tasks such as streaming videos, participating in surveys, responding to event RSVPs, uploading profile photos, etc. These innocuous actions, can result in server peaks throughout the day that dramatically impact the servers that power the API for the Websites and Mobile Apps.
Not meeting objectives, significantly impacts the experience for our clients (event organizers) and their customers (attendees). Not meeting objectives can be detrimental to the event experience for both out clients and their attendees.
Traditionally, 47 Degrees had built Java based back-ends based on Spring, however scaling this out was becoming tedious and developer productivity was lacking, to say the least.
Bank directors, event organizers and conference attendees are tough crowd. They expect their application to be working when they are up on stage demoing their products in front of thousands of VIP clients and peers.
47 Degrees needed to pick a platform that met these unpredictable scaling requirements without missing a beat. They didn’t have to look far for this platform - being a Java shop, they knew that Scala was their only logical choice. By using Scala, 47 Degrees continued to be able to leverage and reuse many of their existing Java libraries - and probably more importantly - it would allow a gradual migration of their current code bases. Furthermore, Lightbend brings a complete Platform that 47 Degrees can rely on both for web and HTTP needs as well as painless integration with any Scala and Java libraries out there.
The community is important. We have witnessed a growing community and success cases everywhere involving big players. We are more certain than ever that we have made the best choice by moving our server development to Scala and the Lightbend Platform from our previous middleware Java and Spring stack.Raúl Raja MartínezCo-Founder, 47 Degrees
47 Degrees had used Scala for smaller projects in the past, but the progress and evolution they had seen in the language, and the productivity increase using Play and Akka were certainly the deciding factors for moving forward with it now.
Many of the programming problems seen by 47 Degrees developers need to be addressed with concurrency in mind. Akka is a powerful toolkit including many patterns related to concurrency and distributed computing that 47 Degrees relies on extensively.
It is very natural to reason around concurrency problems using Akka and the Scala Futures and we spend less time worrying how to implement multithreaded processes in Java. In general, we focus on the application and not general concurrency problems.Raúl Raja MartínezCo-Founder, 47 Degrees
The Play Framework’s stateless model fits right in with 47 Degrees strategy to run more nodes on commodity hardware and cloud deployments (Amazon EC2 and Heroku) to decrease availability concerns at peak times.
After becoming huge Scala fans and users, 47 Degrees tends to incorporate Lightbend Platform technologies in all of the projects they engage in with their clients.
The Lightbend Platform brings in concepts that make it easier to build scalable, resilient, and reactive applications; all of which are important aspects for 47 Degrees’ customers. 47 Degrees has significant Java experience and the transition to Scala was very easy. Raul mentions, “Java is great but makes development around concurrency and parallelism harder than it should be. We build faster, better and less verbose applications in Play and Akka with the Lightbend Platform, which reduces our delivery time and keeps our projects on schedule”.
With the Lightbend platform, we are able to deliver scalable backend services from day one. Our customers never have to worry about spending valuable time and money on re-working their applications to support increased resource demands.
While some of our smaller startup clients can afford schedule delays, our larger clients (e.g. financial institutions such as BBVA) require that we meet deadlines on time and at budget. Not meeting objectives impacts 47 Degrees’ business reputation and their ability to land future deals. The Lightbend Platform is an excellent tool, which reduces their risk of failing to deliver.
The Team and Productivity
47 Degrees has two teams with a total of ten developers. Generally, 47 Degrees has two or three concurrent projects at any point in time.
After a month of development they realized that developing web applications and REST API’s with Play and Scala made their team at least four times more productive than previously. Most of the time in developing Java applications goes into configuration and boilerplate code, moving things in and out of collections and transforming database records into objects that are presented in JSON or HTML views. Play’s built-in support for JSON serialization, reusable templates and Scala features such as traits, higher order functions and Singleton style companion objects helped them reduce their code base considerably since many of the patterns and technique they had to worry about in Java are built into Play, Akka and Scala.
We have found that with the Play Framework—and its stateless model—we have a predictable and share-nothing architecture that scales horizontally with ease ensuring our applications are always available to serve requests.Raúl Raja MartínezCo-Founder, 47 Degrees
Even with great tools, Raul and his team make sure that applications behave as expected, by:
- Carefully load testing endpoints with simulations prior to the events; monitoring resources and how the data flows from requests and back to the clients.
- Having a strategy in place to allocate more server nodes and resources as load increases.
- Thoroughly testing both client usability as well as server load to ensure they deliver a positive experience.
In summary, utilizing the Lightbend Platform has allowed 47 Degrees to:
- Increase of productivity and developer happiness due to reduced boilerplate code and Scala’s concise nature.
- Decrease of development times and maintenance risks.
- More time to focus in business problems and elegant solutions.
- Increase on horizontal scalability with help from frameworks that keeps immutability and the stateless paradigm at its core design and principles.
As a consulting firm, 47 Degrees main business objective is to develop high quality applications on time and within budget. Developing with Play, Akka and Scala allows 47 Degrees to focus more on the actual solution to their clients and less on the tedious library integrations which helps them with timelines enormously.
You can find out more about 47 Degrees at their website, http://47deg.com
Inspired by this story? Contact us to learn more about what Lightbend can do for your organization.
Share This Case Study
Lightbend is the proud provider of the world's leading Reactive application development platform. We are a passionate crew of technology pioneers committed to building amazing software. We build and maintain the Play web framework, the Akka message driven runtime, and the Scala programming language. Our mission is to help developers build high-performance applications that are responsive resilient, elastic and message driven.