Circuit Breakers and Marketplaces

By — Arnab Dey (Product, Marketplace)

UC Blogger
Urban Company – Engineering
5 min readMay 12, 2021

--

Urban Company is a leading home services marketplace and has transformed the way we search, order, and experience these services today.

A critical part of delivering a high-quality experience for customers involves estimating the availability of our service providers accurately. This helps us ensure that customers experience a high degree of reliability when they avail our services.

UC and Capacity Systems

Estimating capacity accurately for a customer involves determining the availability of various types of service professionals (a customer could be looking for anything from a haircut to a massage to a carpenter) in a particular area and across multiple points in time (we allow customers to book services from an hour away to up to 4 days away).

Capacity systems decide which slots will be available for customers

We do this by combining explicit inputs from service providers regarding their availability as well as implicit signals like their location, exhaustion, preference for job types, and historical behaviour.

Why Do We Need Circuit Breakers in Capacity Systems?

Shreya is a young professional who lives in Bengaluru and wants to get a facial done before travelling to her hometown for Diwali. She books an appointment on the UC app for 2 hours before she needs to leave for the airport.

In the event that we are not able to find a professional for Shreya on time, she would understandably be very disappointed and would find it very difficult to trust UC going forward.

At our current scale where UC delivers 1 million requests in a month, even a 1% error rate could mean that 10,000 customers end up having a poor experience like her. The sheer scale involved as well as the trust and reliability that customers have grown to expect from UC dictates that we minimize any such experiences.

While our systems evolve to prevent any such cases, we need a robust circuit breaker logic in the interim to proactively identify parts of the marketplace where such errors are happening in real-time and to stop taking in more requests before the experience for more customers is affected.

Implementing Circuit Breakers in a Marketplace

Once a customer has shared the service that they want, their location, their preferred time slot, and other preferences by placing a request, we start sending these requests to partners who can then accept these requests.

If a request is not responded by any partner, these requests stay un-responded. As a result, errors in capacity estimation manifest as un-responded requests on the platform.

The number of such requests on the platform is a great indicator of the current performance of our capacity systems at any point in time.

New System

While thinking through what the circuit breaker would look like, we identified 3 important needs:

  1. There is a need to objectively evaluate how the marketplace is performing currently in a particular area at any point in time
  2. The system needs to incorporate the real-time feedback available through the current number of un-responded requests
  3. The circuit breaker system should allow for transparency and alerting in businesses where un-responded requests have spiked. This helps business teams react to this and intervene quickly when needed

We kept these core insights from our earlier systems at the heart of the design process for the new circuit breaker system.

Comparison of old and new capacity systems at UC

As a result, we developed an independent service that would define the core health of the system in terms of the current fraction of un-responded requests for different parts of the day for all our markets. It would stop taking in more requests based on objective thresholds defined at a platform level.

The new system has helped us deliver a great experience for our customers with minimal manual intervention. This has also helped drive high transparency and accountability for our business teams in terms of the expected performance from service providers on the platform.

Path Ahead

While the new system has helped establish a strong baseline for us, this is only the first version of circuit breakers in UC. The plan is to enhance this across a couple of phases:

  1. Support for multiple rules (Phase 2): While the current performance threshold defined for the platform helps maintain fulfilment levels on most days, there will be scenarios when we need to be more or less strict to optimize for either growth or experience on the platform. Under Phase 2, we will add the ability to add multiple thresholds allowing individual teams to set modes for their businesses based on their current priorities
  2. Probabilistic Models (Phase 3): While rule-based thresholds for performance help keep things simple, it will become too complex for us to maintain these rules when the platform scales to even more businesses and geographies. Under Phase 3, we would want to move our circuit breaker logic to a probabilistic model where we stop taking in requests based on the probability of the customer having a bad experience.

About the author

Arnab is a product manager in the marketplace team and manages fulfilment for international markets at UC. He is often found cracking lame jokes or passionately discussing the last book he read.

Sounds like fun?
If you enjoyed this blog post, please clap 👏(as many times as you like) and follow us (@UC Blogger) . Help us build a community by sharing on your favourite social networks (Twitter, LinkedIn, Facebook, etc).

You can read up more about us on our publications —
https://medium.com/uc-design
https://medium.com/uc-engineering
https://medium.com/uc-culture

Here are some interesting picks from our uc-engineering publication —
https://medium.com/uc-engineering/using-vectors-boxes-to-scale-quality-411c877e00b0
https://medium.com/uc-engineering/lets-use-ai-what-does-it-mean-6e45c050b945
https://medium.com/uc-engineering/managing-hyperlocal-operations-during-a-pandemic-27d0867e123f

https://www.urbancompany.com/blog/humans-of-urban-company/

If you are interested in finding out about opportunities, visit us at http://careers.urbancompany.com

--

--

UC Blogger
Urban Company – Engineering

The author of stories from inside Urban Company (owner of Engineering, Design & Culture blogs)