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.
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.
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.
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.
As SoundCloud has grown, we’ve seen our API used in countless innovative ways that support and enhance the SoundCloud experience for our creators and listeners around the globe. At the same time, we’ve also seen a number of apps or services that act on behalf of our users without their explicit permission or attempt to use creator…
In a previous series of blog posts, we covered our decision to move away from a monolithic architecture, replacing it with microservices, interacting synchronously with each other over HTTP, and asynchronously using events. In this post, we review our progress toward this goal, and talk about the conditions and strategy required to decommission our monolith.
About a year ago we faced an interesting question at SoundCloud: can we build SoundCloud Pulse — our app for creators — with React Native? Is a five-month-old technology mature enough to become part of SoundCloud’s tech stack?
As well as adding new features and updates, we review existing features to see if they’re still beneficial to the community.
As we dug into the best ways for curators to connect with artists and fans, we found that Groups aren’t working as well as reposts and curated playlists.
With that in mind, we’ve decided to phase out Groups on Monday, August 22nd to make room for future updates.
From this date, all Groups-related GET requests will no longer return results, and PUT requests will not persist…
Since we started breaking our monolith and introduced a microservices architecture we rely a lot on synchronous request-response style communication. In this blog post we’ll go over our current status and some of the lessons we learned.
On Monday this week, the Prometheus authors have released version 1.0.0 of the central component of the Prometheus monitoring and alerting system, the Prometheus server. (Other components will follow suit over the next months.) This is a major milestone for the project. Read more about it on the Prometheus blog, and check out the announcement of the CNCF, which has recently accepted Prometheus as a hosted project.
Over the last 100 years we have dialed into radio stations at home, on the road, or in the office to access a curated mix of top hits delivered to us by our favorite DJ. With more and more of our daily activities taking place online, we find our source of music now comes from a mix of our mobile phones, our desktop computers and the radio - and is available to us whenever we need it. The amount of music available today is endless. The music scene has never been so vibrant. A proliferation of production tools at low cost and the ease at which an artist can share their sounds, gives everyone the opportunity to share their work at any time, with only a few clicks.
Keeping this in mind, we set out to determine: How can we bring a radio like experience to SoundCloud that would enable you to tune-in and lean back?