# system-design-concepts

Published articles for system-design-concepts.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Scaling Challenge Leaderboards for Millions of Athletes

DevFeed: [Scaling Challenge Leaderboards for Millions of Athletes](<https://devfeed.tech/articles/scaling-challenge-leaderboards-for-millions-of-athletes-26576.md>)

Original publisher: [Read original article](<https://medium.com/strava-engineering/scaling-challenge-leaderboards-for-millions-of-athletes-9ab09ef01381?source=rss----89d4108ce2a3---4>)

Author: Mike Kasberg

Published: 2024-01-18T17:01:41Z

Content type: article

Language: en

Sources: [Strava Engineering](<https://devfeed.tech/sources/strava-engineering.md>)

Topics: [Scalability](<https://devfeed.tech/topics/scalability.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [legacy](<https://devfeed.tech/topics/legacy.md>)

Tags: [implementation](<https://devfeed.tech/tags/implementation.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [programming](<https://devfeed.tech/tags/programming.md>), [redis](<https://devfeed.tech/tags/redis.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [sql](<https://devfeed.tech/tags/sql.md>), [system-design-concepts](<https://devfeed.tech/tags/system-design-concepts.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

A Strava Engineering blog post describes replacing a legacy challenge leaderboard system after rapid growth in monthly challenge participation caused recurring bottlenecks and scalability problems. The article introduces the scaling challenges of the old system, which was implemented primarily using Redis.

### Source excerpt

Strava challenges offer a fun way for athletes to compete against themselves and others! Back in 2020, our legacy challenge leaderboard system was running into bottlenecks and scalability problems on a regular basis, and we often found ourselves putting out fires to keep the system stable. In late 2020 and early 2021, I worked on a project to replace the old leaderboard system with a new one that could handle a much larger number of athletes competing in challenges. This blog post is about that project. I drafted most of this post when the project wrapped up in 2021, but didn't get it published before I went on paternity leave -- and then I forgot about it. I think the project was interesting and worth sharing, so I'm glad I finally remembered my draft (three years later 🫣) and found some time to put in the finishing touches and get it published! Enjoy! In January 2020, Strava's monthly 5K running challenge attracted more than half a million participants for the first time. This was a big milestone, doubling the participation from just a year earlier when we had only a little more than 250,000 participants in the January 2019 5K challenge. But we weren't done growing! Just 5 months later, our challenge participants doubled again and we broke 1 million participants in a monthly challenge for the first time with the May 2020 5K, where 1.2 million Strava athletes participated! In less than a year and a half, the number of athletes participating in Strava's monthly challenges had quadrupled. As you can imagine, the increase in challenge participation came with a significant increase in load on our systems. In particular, we were beginning to approach the limits of what our existing challenge leaderboard system could handle. If the number of challenge athletes participating in our monthly challenges were to double again, our challenge leaderboard system wouldn't handle it well. We needed to do something to improve the way our leaderboard system scaled with more challenge