Evolution of Bid Notifications to Courier
Pushing the limits with Courier and improving reliability with great numbers.
![Evolution of Bid Notifications to Courier](/content/images/size/w2000/2023/11/Blog-banner-8-nov-01.jpg)
By Ajat Prabha
🚀 Introduction
I remember the good old days when we relied on a vendor to send those tantalizing bid notifications to our driver’s partner app. Well, times have changed, and so have we! Let’s dive into the nitty-gritties of how Gojek revamped its bid notification system.
🍔 Bids: A Quick Bite
Before we get too deep into the tech talk, let’s clear up one thing: What on earth are bids?
In the simplest terms:
- Bids are food and ride requests sent to drivers.
- They serve as a connector, linking hungry customers with ready drivers, creating a seamless experience for food and ride requests! 🚗💨
📐 Blueprints of Change: System Redesign
![](https://cdn-images-1.medium.com/max/2400/1*W0phc6SG2O3leM38mYr2dQ.png)
Now, let’s delve into the details of this system:
Old System:
Two parallel channels running side by side:
- Vendor: The old channel we aimed to replace
- Pusher: The new kid on the block, initially used FCM + APNS channels only
New System:
- We’ve put all our eggs in one basket, and that basket is Pusher! 🥚🧺
- Pusher now uses a dynamic trio: Courier (our secret sauce, the in-house MQTT solution for those long-running connections) + FCM + APNS.
- Vendor is not used anymore!
😢 Saying Goodbye to the vendor
We recognized the need for change and strategically phased out the old system in stages:
- Tier 3 cities: They say, “Start small.” So we did.
- Tier 2 cities: The middle child always gets overlooked, but not this time!
- Tier 1 cities: Last but not least, the big guns!
📊 The Proof is in the Pudding (or the Numbers)
Since we’re all about data, let’s talk numbers:
- Courier’s delivery rate? A whopping 99.9%+! 🚀In comparison, the trio of FCM+APNS+VENDOR hovered around 97–99%.
- And here’s the cherry on top: We observed a ~22% reduction in P99 bid acceptance latency. That’s like cutting the queue at your favorite coffee shop! ☕️
😰 Rollout Roadblocks (and How We Crushed Them)
Every epic tale has its challenges, and ours was no different:
- We tried the Push Notification channel, but guess what? The Device ID played hide and seek with one of our internal micro-services databases. 🙈
- Solution: We gave our MQTT publish topic structure a makeover, ditching the deviceID. Not only did this simplify things, but it also boosted reliability. Talk about a win-win!
🎉 Conclusion
Change is the only constant, and at Gojek, we embrace it with open arms. As we usher in the era of Courier-backed Pusher, we’re excited about the road ahead. Here’s to faster bids, happier drivers, and satisfied customers!
![](https://cdn-images-1.medium.com/max/1600/1*IPWwoozDxeKoXMtXEyrtLw.png)
To read more stories from our vault, click here.
Check out open job positions here.