The Journey into Microservices at SoundCloud
Share This Article
Modern commerce and microservices
Table of Contents
Subscribe to Our Blog
SoundCloud is a company that allows millions of people to enjoy online music for free. This said, programmers at SoundCloud do not have an easy job.
Introduction to the SoundCloud
SoundCloud is an online music streaming service that allows users to upload, share and promote their music to the world. It has become an essential tool for musicians, producers, DJs and other industry professionals to connect with fans, build their brand and grow their fan base. SoundCloud also provides access to millions of songs from labels, independent artists and podcasters. With its intuitive interface and easy-to-use features, SoundCloud is a great platform for discovering new music and connecting with other music fans.
Microservices at SoundCloud – How it all started
Just as most companies do, SoundCloud started with a monolithic architectural system, just like most businesses do. Like other successful businesses, SoundCloud’s business also grew. Their service has also become more popular.
In 2014, SoundCould hosted only about 12 hours of music. However, demand soon surged to huge levels, with hundreds of millions of people using the platform on a daily basis. This led to problems such as communication overhead, unnecessary friction, and delays.
Want to know more about what moving to microservices entails?
Why did SoundCloud Move from Monolithic to Microservices Architecture
SoundCloud moved from a monolithic to a microservice architecture for several reasons. First, the increased scalability of microservices allowed SoundCloud to better meet the needs of their rapidly growing customer base. Additionally, the modular nature of microservices made it easier for SoundCloud to add new features and services, as well as to quickly respond to customer feedback. Finally, microservices allowed SoundCloud to have more control over each individual service, allowing them to focus on improving specific services instead of the entire system.
How the Team Set up Microservices Architecture at SoundCloud
The engineering division decided to dismantle the Ruby on Rails monolithic system (which they called Mothership) into a set of numerous smaller services that would help them to manage the service in an easier fashion.
Download Ebook for FREE "How to choose the best microservices vendor and trim the cost"
To split the monolithic system into microservices, they did not use a team to set up a working microservices solution. Instead, going by the book called Bounded Context, they decoupled the services from the Mothership with help from highly skilled programmer teams.
- For this, they invested in tools and libraries that helped them to create the microservices in an easier fashion.
- Frontend developers started writing backend code with the existing backend developers chipping in with lightweight libraries which enabled the frontend-turned-backend warriors to write edge services easily. These were further standardized, paving the way for a Backend-for-frontend (BFF) framework.
- They implemented ‘extraction projects’ in which a new service was set up outside the monolith when significant changes were made to a specific feature or entity that existed inside the monolith.
- They also realized that new features could be built outside the monolith using the internal API that it provides to access its data.
Initially, there were only a few microservices, but today there are many microservices that make up the SoundCloud service. And these are split across different continents.
Benefits Soundcloud Gain Using Microservices
1. Increased Scalability: Microservices allow for the scalability of SoundCloud's systems and services, as they can be individually scaled and updated independently from each other. This can help to ensure that the platform can handle increased traffic, new features, and other updates without impacting the performance of the entire system.
2. Improved Reliability: By separating the different components of SoundCloud's platform into independent services, any issues that arise with one service will not directly affect the others. This means that any individual failure should not impact the performance of the rest of the system, leading to reduced downtime and improved reliability.
Read our blog "Why Business leaders should care about Microservices"
3. Faster Development Cycles: Microservices allow for faster development cycles, as the development team can work on different parts of the platform in parallel. This can help to reduce the time needed to create new features and get them to market faster, as well as increase the rate of experimentation and innovation.
4. Reduced Costs: By dividing the platform into individual services, SoundCloud can reduce the cost of hardware, as well as the cost of development and deployment. This can lead to savings in both time and money, as well as allowing for greater investments in other areas of the business.
Unloading the main server from huge streams of data helped to split up the load distribution into smarter paths, and this was a decisive factor in choosing to go the microservices way at SoundCloud.
Share This Article
Microservices in Cloud Native is a software architecture that allows developers to build applications as a collection of services. These services are organized around business capabilities and are independently deployable, scalable, and maintainable.
Yes, Spotify uses a microservices architecture to power its streaming services.
Microservices architecture is used to create applications that are easier to maintain and scale. By breaking down applications into smaller services, teams can work on components independently and update them without affecting the entire application. This reduces the risk of downtime and improves the overall performance of the application.
Microservices architecture is a way of structuring software applications as a collection of services that communicate with each other. Each service is responsible for a specific business capability and runs independently of other services, allowing for greater scalability and flexibility. Microservices are built as small independent services that communicate over a network layer. These services are typically small and loosely coupled, which allows for greater scalability and faster release cycles.
Subscribe to Our Blog