Customer Company Size
Mid-size Company
Region
- Europe
Country
- Poland
Product
- Typesafe Reactive Platform
- Scala
- Akka
- Spray.IO
Tech Stack
- Scala
- Akka
- Spray.IO
- ElasticSearch
- Mahout
Implementation Scale
- Enterprise-wide Deployment
Impact Metrics
- Customer Satisfaction
- Digital Expertise
- Productivity Improvements
Technology Category
- Application Infrastructure & Middleware - API Integration & Management
- Platform as a Service (PaaS) - Application Development Platforms
- Analytics & Modeling - Predictive Analytics
Applicable Industries
- Telecommunications
Applicable Functions
- Business Operation
- Product Research & Development
Use Cases
- Predictive Maintenance
- Process Control & Optimization
- Remote Asset Management
Services
- Software Design & Engineering Services
- System Integration
About The Customer
Yap.TV is a social guide to what's on TV and iTunes, allowing users to see what's new on TV, browse top shows, discover what their Facebook friends are watching, and get a personalized TV Feed full of media from their favorite shows. The company aims to enhance the TV viewing experience by integrating social media elements and providing a comprehensive guide to TV content. Yap.TV's platform is designed to cater to a wide audience, offering features that appeal to both casual viewers and TV enthusiasts. The company is focused on delivering a seamless and engaging user experience, leveraging technology to provide real-time updates and personalized content recommendations. Yap.TV's commitment to innovation and user satisfaction drives its efforts to continuously improve its platform and expand its offerings.
The Challenge
SoftwareMill and Yap.TV began working together in September 2011. At the time, the Yap.TV server was entirely Ruby-based. While this worked in the beginning, as the user base grew, high load on the servers, especially during prime time TV, caused significant issues with server performance and scalability. Not only was this degrading the end-user experience, but as new features were waiting in the backlog to be developed, key engineering resource time was becoming dominated by scaling servers and operations. Apart from serving traditional web traffic, Yap.TV also required an increasing number of background imports, taking together data from various sources. To handle the ever-growing amount of data to be processed, a performant (but at the same time - easy to program and safe) concurrent programming model was crucial.
The Solution
Yap.TV decided to re-engineer their backend systems with the help of software development from SoftwareMill. They formed a joint backend team to tackle the problems. The platform of choice was the Typesafe Reactive Platform. We evaluated a couple of alternatives, but the elegance and type-safety of Scala, the concurrency (actor) model used by Akka, the speed and power of Spray.IO in building REST services and the overall asynchronous model of the Typesafe Platform made it a clear winner. To ensure quick delivery, SoftwareMill gradually replaced portions of Yap’s REST API, starting from some simple endpoints to get deployment right, and then proceeding to the ones with the highest congestion. They promptly found that Spray.io, combined with the Scala language, enabled them to rapidly develop new web service endpoints. Typesafety saved the SoftwareMill team from a lot of debugging and the ability to create composable abstractions kept their code concise and easy to maintain. To implement the data processing pipeline, SoftwareMill used the Akka concurrent programming framework. Handling multiple, asynchronous data streams and processing them in real-time became not only possible, but also feasible to implement in a reasonable timeframe and a clear, understandable way. The Actor programming model itself, and the fact that instead of thinking about threads and synchronization, one has to think about actor behaviors and interactions, which happen asynchronously, made programming this system much easier. Importing data from third-party services (which in case of Yap.TV, include Twitter, Facebook, EPG and iTunes data, among others) is an inherently error-prone process, hence detecting problems early and recovering from them is crucial. Here again Akka was a good fit, due to the supervisor hierarchies and the let-it-crash philosophy.
Operational Impact
Case Study missing?
Start adding your own!
Register with your work email and create a new case study profile for your business.
Related Case Studies.

Case Study
Vodafone Hosted On AWS
Vodafone found that traffic for the applications peak during the four-month period when the international cricket season is at its height in Australia. During the 2011/2012 cricket season, 700,000 consumers downloaded the Cricket Live Australia application. Vodafone needed to be able to meet customer demand, but didn’t want to invest in additional resources that would be underutilized during cricket’s off-season.

Case Study
SKT, Construction of Smart Office Environment
SK T-Tower is the headquarters of SK Telecom. Inside the building, different types of mobile devices, such as laptops, smartphones and tablets, are in use, and with the increase in WLAN traffic and the use of quality multimedia data, the volume of wireless data sees an explosive growth. Users want limitless Internet access in various places in addition to designated areas.