# Strava's Transition from a Ruby on Rails Monolith to Scala Microservices

DevFeed: [Strava's Transition from a Ruby on Rails Monolith to Scala Microservices](<https://devfeed.tech/articles/a-taste-of-pakora-26568.md>)

Original publisher: [Read original article](<https://medium.com/strava-engineering/a-taste-of-pakora-cf3b5de261ec?source=rss----89d4108ce2a3---4>)

Author: Avery Dunn

Published: 2022-11-01T16:02:01Z

Content type: opinion

Language: en

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

Topics: [Microservices](<https://devfeed.tech/topics/microservices.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [internships](<https://devfeed.tech/tags/internships.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [scala](<https://devfeed.tech/tags/scala.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

## AI overview

A Strava software engineering intern reflects on the company's transition from a Ruby on Rails monolith to Scala microservices. The article describes the intended benefits for team independence and developer experience, and notes that the API is evolving from REST to GraphQL.

## Source excerpt

My name is Avery Dunn and I am a rising master's student at Washington University in St. Louis studying computer science. For the past 12 weeks, I have been a software engineering intern on the API & Platform pod of the Foundation team. I am an active Strava user and have been for approximately 3 years with my favorite activity being running. Some other activities I enjoy are playing the piano, reading novels, or skiing (more of a luxury rather than a hobby). My internship at Strava has been a wonderful experience to help me learn, grow, and develop into becoming a more well-rounded, conscientious software engineer. Whether it was working with a recent hire or seasoned "Stravioli," the positive and ambitious company culture shined brightly throughout the course of the summer. In Transition From a Monolithic to Microservice Architecture Strava currently maintains a code monolith-a huge Ruby on Rails codebase that controls the user interface, business logic, and database access. For a growing company like Strava and the continuous development of ideas being made into new features, a code monolith doesn't make for a great developer experience. Trying to parse through a massive codebase and making sure that all the moving parts are in order so that a typo that was somehow glossed over can successfully be changed makes me a little dizzy, personally. The developers at Strava thought so too, and decided to embark on a transition from the Ruby on Rails singular software application to Scala microservices. Over the course of my internship, I gained insight into the process of restructuring a singular software application into Scala microservices and the benefits of that result. Scala microservices can be thought of as modules that work together but separately. They encourage diversification of teams such that each team has less of a dependence on one another like they would for a monolithic codebase. Figure 1: Comparison of a monolithic codebase architecture versus distribut