Backstage Blog

RSS logo

You're browsing posts of the category Microservices

The End of the Public API Strangler

March 14th, 2022 by Dónal O'Brien and Jorge Creixell

This is the story of how we used the Strangler pattern to migrate our public API from a monolithic codebase to a fully fledged BFF over the course of eight years. It also discusses some of the trials and tribulations we encountered along the way.

Read more…

Service Architecture at SoundCloud — Part 3: Domain Gateways

September 17th, 2021 by Marc Tuduri, Kim Covaci, Bernd Louis and Jorge Creixell

Discover how SoundCloud extended the concept of Value-Added Services to Domain Gateways.

Read more…

Service Architecture at SoundCloud — Part 2: Value-Added Services

August 20th, 2021 by Bejal Lewis and Marc Tuduri

Learn about the evolution of architectural patterns at SoundCloud — from BFFs to Value-Added Services.

Read more…

Service Architecture at SoundCloud — Part 1: Backends for Frontends

July 29th, 2021 by Jorge Creixell

Discover how service architecture has evolved at Soundcloud over the past few years...

Read more…

Using Kubernetes Pod Metadata to Improve Zipkin Traces

September 19th, 2018 by Steve Conover

We revisited our distributed tracing setup and incorporated Kubernetes pod metadata into it, significantly enhancing our engineers’ ability to troubleshoot problems that cut across microservices.

Read more…

How SoundCloud Uses HAProxy with Kubernetes for User-Facing Traffic

December 7th, 2017 by Matthias Rampke

A little less than two years ago, SoundCloud began the journey of replacing our homegrown deployment platform, Bazooka, with Kubernetes. Kubernetes automates deployment, scaling, and management of containerized applications.

Read more…

Inside a SoundCloud Microservice

July 28th, 2017 by Matthias Käppler

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.

Read more…

Lessons in resilience at SoundCloud

December 7th, 2016 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.

Read more…

Microservices and the monolith

August 26th, 2016 by Tom Stuart

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.

Read more…

Synchronous communication for microservices: current status and learnings

July 27th, 2016 by Kristof Adriaenssens

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.

Read more…