Evolution of Bid Notifications to Courier

Auteur:

Olivier K

Publié le:

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

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!