If you're a regular visitor to this blog, you might be aware that we have been transitioning to a microservices based architecture over the past four to five years, as we have shared insights into the process and the related challenges [on] [multiple] [occasions]. To recap, adopting a microservices architecture has allowed us to regain team autonomy by breaking up our monolithic backend into dozens of decoupled services, each encapsulating a well defined portion of our product domain. Every service is built and deployed individually, communicating with other services over the network via light-weight data interchange formats such as JSON or Thrift. What we haven't touched on so far is how a microservice at SoundCloud looks backstage.
Backstage Blog RSS
July 28th, 2017 Microservices Finagle Scala Functional Programming Inside a SoundCloud Microservice By Matthias Käppler
June 28th, 2017 Mobile Xbox Authentication Remote device sign-in By Tiffany Conroy
A method for signing in to a device that doesn’t have a keyboard
When we were developing our SoundCloud app for Xbox One, something became very obvious during usability testing: signing in with a game controller really sucks. Entering text requires navigating a virtual keyboard to individual letters, numbers, and characters one at a time – such a nightmare! Plus, letters, numbers, and special characters are spread across three screens. The more secure your password is, the worse the experience is.
June 20th, 2017 Architecture Data A Better Model of Data Ownership By Joe Kearney
Once upon a time, we had a single monolith of software, one mothership running everything. At SoundCloud, the proliferation of microservices came from moving functionality out of the mothership. There are plenty of benefits to splitting up features in this way. We want the same benefits for our data as well, by defining ownership of datasets and ensuring that the right teams own the right datasets.
December 7th, 2016 Microservices Architecture Finagle Lessons in resilience at SoundCloud By Argha Chattopadhyay
Building and operating services distributed across a network is hard. Failures are inevitable. The way forward is having resiliency as a key part of design decisions.
This post talks about two key aspects of resiliency when doing RPC at scale - the circuit breaker pattern, and its power combined with client-side load balancing.
September 23rd, 2016 Announcements API Sign-up Changes By Platform Team
Today we are launching a new API application process.
Starting today, developers will need to fill out an application form to request access to our API.
Here is why.
Here is what it means.
If you wish to submit an API Application Form, click here.