8 Comments
User's avatar
Fran Soto's avatar

It's interesting their use of events for things like discounts and placing orders.

My intuition was to treat async communication as something that can take more time. I bet they'll have tight alarm thresholds if the backlog of messages starts growing. In the end, a good customer experience requires low latency in those flows.

Good read, Neo!

Neo Kim's avatar

thanks, Fran

Jaikumar Guwalani's avatar

Can someone simplify the point two ? How it works ?

Neo Kim's avatar

can you please be more specific with the question?

Daniel Saputra's avatar

Yes, the process is async, how to update the state on the mobile device?

komal singla's avatar

Neo, can you explain how specific restaurant be visible on UI closest to client and how delivery happened? Needs bit help about gep hashing if it is used.

Neo Kim's avatar

I don't know about how they do it, but I'd assume they use geo hash.

Similar read: https://newsletter.systemdesign.one/p/how-does-uber-find-nearby-drivers

Patryk Buda's avatar

Also, a first-in-first-out (FIFO) queue guarantees ordering and exactly-once processing of transactions. Exactly once processing cannot be assumed on the Queue level, probably it could be on the compute level if you handle it correctly, but on the broker, that is wrong.