Microservices Architecture used by SoundCloud
Introduction to the SoundCloud
SoundCloud is a Swedish-founded global music and audio platform that allows its users to upload, promote and stream audio with various subscription services.
- As an open platform that directly connects artists and their fans, this became well known for its unique content and exclusive features acquiring over 175million monthly users.
- Sound cloud’s site uses adaptive web design with dynamic web serving and their API allows 3rd party programs to upload audio files or download files with uploader permission.
- This supports a wide variety of files such as AIFF, WAV, MP2, MP3 and it transcodes them to mp3 at 128kbit/s for streaming.
- It was initially built using monolithic architecture and was one of the first applications to move from monolithic to microservices architecture.
Moving from Monolithic to Microservices Architecture
- Soundcloud was initially created as a single monolithic Ruby on Rails application Running on the MRI, Ruby’s official interpreter, and backed by Memcached & MySQL.
- With the rapid increase of users, they faced issues of scaling as a large social network with a media distribution powerhouse.
- As a solution, they decided to move towards microservices architecture with the help of “Bounded Context” by Eric Evans and Martin Fowler.
- By decoupling the services from their monolithic Ruby on Rails application called mothership, they successfully moved from monolith to microservices architecture.
Microservices Architecture of SoundCloud
Microservices architecture is a variant of service-oriented architecture (SOA) structural style that arranges an application as a collection of loosely coupled services.
In a microservices architecture, services are fine-grained and protocols are lightweight.
With the use of microservices architecture SoundCloud’s mothership is broken into smaller autonomous independent services with the ability to communicate among themselves through well-defined API.
Benefits Soundcloud Gain Using Microservices
Ability to provide a high-quality streaming service.
Simplified the deployment of the app.
No single point of failure.
Enabled event sourcing to deal with shared data.
Code Re-usability.
Freedom in the use of technology.
Higher availability.
Started based on the Monolithic architecture sound cloud has successfully moved from Monolithic to Microservices proving that is a great idea.
Sneak peek at SoundCloud’s headquarters in Berlin! A creative, innovative, and fun place to work and collaborate.
Wanna join them? Find opportunities here: http://soundcloud.com/jobs