You are viewing content from a past/completed QCon Plus - November 2020


Pitfalls and Patterns in Microservice Dependency Management

A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable." -- Leslie Lamport, May 28, 1987. Building a product based on microservices has many advantages as vertical/horizontal scaling, independent release cycles and logical decoupling. But allowing microservices connections to grow unbounded can also lead to complex architectures. In this talk, we will review the most common traps and tips for better alignment between microservices traffic and their backend dependencies. Have you ever launched a new feature just to discover your database didn't have enough resources to cope with the new requests? Has your service experienced poor performance in one region when a backend had an outage in another one? Can a service offer a higher SLO than its backends? Let's take a deep look into these scenarios and understand what happens and how can we guarantee good service at all times.

Main Takeaways

1 Hear stories how a small change can impact a system.

2 Learn about the importance of having a broad view of a system to better understand how a change can impact a system and its customers.

Tell me a bit about your talk.

I'm going to be talking about dependency management in an environment of microservices. And I'm going to present three interesting scenarios that changed my way to interpret the environment. They were key moments where I noticed that the binary was not everything, that the traffic between the binaries made a huge difference. The first one was when I was still a junior engineer and it was related to traffic. I think it was my first launch, the feature I first launched it. To summarize, it affected the traffic into one of our back-ends. I didn't give notice to the back-end owners and they noticed the spike. I don't want to spoil the surprise, but they were very surprised about my launch. Let's say that. And then I learned at that point that every time I change the binary, the flow of requests to the back-end will be affected. I have to be considerate of that.

What's the takeaway?

I'm going to be giving some tips from my personal learnings. I will tell you exactly what went wrong, so you can look for the signs. If you notice something is going wrong, maybe it's similar to what I experienced, but then I'm going to let you know what I did to make it better to avoid similar situations.

Who's your core persona you're talking to?

All these scenarios happened when I was working with other roles in engineering. At one point I was working with a PM. At another point, I was a SRE working with devs. And on the last one, I'm working with basically everybody because our goal is to build reliable services. It's not just one person, not one role that will make this happen. I think all three scenarios can be useful for a variety of roles.

What would be the one thing that you think will really stand out?

I hope people start thinking about their systems in a more holistic way. Every time you change your system, this will affect many other parts, many other components of the whole product. It will affect the back-ends, either if they are run by your own company or if you run them in the cloud or whatever. And they will definitely affect the customer. And this is the person that you want to keep in mind at all times. But before your change reaches the customer, it might change just a bit. So, again, be thorough when you are designing a change in a system. Consider all the nuances and keep focus on the customer.


Silvia Esparrachiari

Software Engineer @Google

Silvia has been a software engineer at Google for 10 years, having worked at User Data Privacy, Spam and Abuse Prevention, and most recently in Cloud and Infrastructure/SRE. She has a bachelor in Molecular Science and a masters in Computer Vision and Human-Computer Interaction. Her current focus...

Read more


Tuesday Nov 10 / 01:50PM EST (40 minutes)


Operating Microservices

Add to Calendar

Add to calendar


From the same track


Solving Mysteries Faster with Observability

Tuesday Nov 10 / 02:40PM EST

Everyone loves a good mystery, but not when it involves operating our services. Investigating production issues in a microservice architecture can make you feel like a detective, combing through evidence and gathering clues to reconstruct the scene of a crime, all while the clock is ticking. You...

Elizabeth Carretto

Senior Software Engineer @Netflix


From Monolith to Microservices

Tuesday Nov 10 / 01:00PM EST

Due to its low overhead and centralized management, companies often start building products under a monolithic architecture.  But as team sizes grow and product use cases become more complicated, this often slows down software development and adds unnecessary friction in the deployment and...

Sha Ma

VP of Software Engineering @GitHub


The Medieval Census Problem

Tuesday Nov 10 / 03:30PM EST

Delve into the mists of time and the kingdom of Andzania and their progressive queen's journey towards a census of her population. See how the concepts of distributed computing have been known to humanity for hundreds of years and how you can use the medieval census as a model to picture how...

Andy Walker

Founder at Kraken Industries

View full Schedule

Less than


weeks until QCon Plus May 2022

Level-up on the emerging software trends and practices you need to know about.

Deep-dive with world-class software leaders at QCon Plus (Nov 1-12, 2021).

Save your spot for $549 before February 7th