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.

Microservices Architecture

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.

Microservices Architecture of SoundCloud

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

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store