Runtastic

How we helped world-leaders cope with a surge in demand for their app, Runtastic.

Runtastic

The company

The Adidas Runtastic App combines traditional fitness and running tracking with social networking and gamification to help runners achieve, track and share their success. The Runtastic app was originally a monolithic Ruby on Rails application. To improve performance, it was moved to a micro-services platform with RabbitMQ at the core. The Runtastic team consists of over 10 dedicated developers.

Significantly improved throughput

Futureproof solution to prevent future issues

Client team empowered to identify and solve problems in their system

The challenge

In March 2020, many countries in the world went into lockdown to slow the spread of the coronavirus. With gyms and other forms of exercise not available running and mobile training apps surged in popularity. This led to a huge, unexpected spike in concurrent users of the Runtastic app.

While an increase in usage and popularity is usually a welcomed outcome, such sudden and drastic spikes can expose limitations in any messaging architecture that may have otherwise gone unnoticed. In the case of Runtastic, the increased demand caused high latency which in turn resulted in user delays and in extreme cases, destruction of service. The team at Runtastic ran their own diagnostics and were able to pinpoint that the system disturbances were happening within RabbitMQ.

The solution

The team at Erlang Solutions conducted an architecture review and performance testing to uncover the problem and make best practice architecture suggestions to improve the overall performance of Runtastic’s RabbitMQ set up.

We used the new Prometheus integration introduced in RabbitMQ 3.8 to visualise different aspects of the system while reproducing the overload scenarios.
This was conducted in conjunction with 10 educational workshops with the Runtastic developers, engineers and DevOps team.

The results

Throughout our performance testing, we discovered that the mirroring logic was putting an excess load on the networking components of RabbitMQ. Not only were we able to solve the problem, but we were able to do so with real-time consultation of the Runtastic development team.
This provided the added value of empowering them with the knowledge of how to identify the problem and own the solution, all with the added benefit of having our expert team provide best practice guidance and assurance.

The Runtastic team was introduced to the core elements of how to design a system, identify its moving parts and the benefits and setbacks of each of its components. We didn’t just bring their team up-to speed with this specific problem, we bought them up-to parity with our world-class team by helping them understand how to identify and solve similar problems in the future.
As a result of this successful collaboration, the Runtastic app saw a significantly improved throughput and overall performance.

Next Case Study

Next Case Study

Pando

Discover how we helped revolutionise communications in healthcare in the United Kingdom. Meeting the privacy needs of patients and the collaboration need of healthcare professionals.

Learn more