Live data from Hacker News

McDonalds Event Driven Architecture

medium.com

101–110 of 134 posts

Re: McDonalds Event Driven Architecture

#101
Unfortunately McD app doesn't make a good impression. It's quite buggy (iOS and Android) and has some obvious usability issues.

So it doesn't matter what architecture is behind McD systems if customer facing software doesn't work correctly.

Re: McDonalds Event Driven Architecture

#102
post #60

I am, for better or worse, a "heavy user" of the McDonald's app. And unfortunately, all this architecture somehow still misses so many usability issues. The most annoying one, is that the app always defaults to the closest location "as the bird flies." Despite the fact that I have "favorited" a different store, and also my last 5 or 10 orders were placed at this favorite store, the app ALWAYS defaults to the first st…

> The most annoying one, is that the app always defaults to the closest location "as the bird flies."

I've got a similar annoyance with basically every app or website that offers to find things within N miles of me. I live in Western Washington on the other side of Puget Sound from Seattle.

Say the first two options they give me for N are 10 miles and 25 miles.

10 miles is too small. I need more than that to include Bremerton, Silverdale, and Poulsbo, which are the three most likely places that I'll find whatever I'm looking for if it exists over here.

But 25 miles means the circle reaches past Puget Sound and includes Seattle, Bellevue, and even some of Redmond.

For example if I'm searching for Target stores and enter my zip code, their search lists my nearest store first, then 13 stores on the Seattle side (5 in Seattle, 2 in Bellevue, and 1 each in Lynnwood, Everett, Redmond, Renton, Tukwila, and Woodinville) before the store that is actually second closest to me as far as actually driving goes (Gig Harbor).

Re: McDonalds Event Driven Architecture

#103
post #95

Earlier quoted context omitted.

We use kinesis a lot at work, and some services are architected to write events to a Postgres table which eventually gets dumped to kinesis, while other services write directly to kinesis. Guess which services fared better during the last kinesis outage?

What's the point of using kinesis in this case? Why can you not consume from postgres. My understanding would be that you use kinesis for impedance matching on writes. If you can already write everything on Postgres reliably I cannot see any immediate use case for Kinesis. I could see the other way around, i.e. having kinesis as a resilience backup for postgres being a more valid concern.

I'm not the person you're replying to, but I've used a similar pattern, and there are a couple of reasons.

First, if you have lots of databases and other applications, then you are talking about a mesh of event busses - which defeats the purpose. Pushing the messages out of the various databases and into a central message bus makes the messages more easily consumable without having to know where they come from.

Second, by writing messages to a PG table first, those messages become part of the update transaction. This means you can post messages at any time during your business logic processing, but if you hit an error and roll back, those messages (which would, presumably, no longer be valid) are also rolled back.

Combine this with message idempotence and you get a very reliable messaging environment.

Re: McDonalds Event Driven Architecture

#104

Call me a luddite but I still find it easier to tell my order to a cashier (I usually remove a few items like the godawful special sauces)

McDonalds by you still have human cashiers?

Most of the ones in the US have humans. They also have kiosks, but if you really want to talk to a person, you can.

Re: McDonalds Event Driven Architecture

#105
post #50

> Standby Event Store: To avoid loss of messages in the event the MSK is unavailable, the platform is wired with a standby data store, where it writes events onto a database . The architecture provides tools and utilities to read messages and publish them back onto MSK, once it’s available. on one hand aws msk is good enough for an enormous application like mcdonald’s. on the other they need a backup database just to…

Probably nothing more than a requirement for resiliency. With thousands of restaurants, chances of a couple of them losing connectivity each day are going to be pretty good, through traditional interruptions like backhoes digging up cables and drunk drivers taking out telephone poles. If those messages are discarded because the store can't talk to MSK (or MSK is unavailable), then things like automatic replenishment…

But it's more likely that they'll lose connectivity to AWS altogether rather than MSK going down itself. I'd not try to write from each store network directly, but through some gateway that would take care of writing to Kafka and that separate store if we still have availability issues.

Re: McDonalds Event Driven Architecture

#106
post #60

I am, for better or worse, a "heavy user" of the McDonald's app. And unfortunately, all this architecture somehow still misses so many usability issues. The most annoying one, is that the app always defaults to the closest location "as the bird flies." Despite the fact that I have "favorited" a different store, and also my last 5 or 10 orders were placed at this favorite store, the app ALWAYS defaults to the first st…

Even the best event / data streaming architecture (or, more generally, a backend architecture) in the universe can be negated by a lousy frontend app / frontend layer architecture. I have never ordered anything from a Macca's… but I surmise that is the consequences that McDonald app users are facing.

The article lacks any details material to the event streaming architecture instantiation, and defers the details to a follow-up blog post, so it is hard to draw meaningful conclusions from it.

Re: McDonalds Event Driven Architecture

#107
post #71
post #60

I am, for better or worse, a "heavy user" of the McDonald's app. And unfortunately, all this architecture somehow still misses so many usability issues. The most annoying one, is that the app always defaults to the closest location "as the bird flies." Despite the fact that I have "favorited" a different store, and also my last 5 or 10 orders were placed at this favorite store, the app ALWAYS defaults to the first st…

> BOGO I always find this phrase funny. Isn't buying one and getting one the normal state of affairs?

In UK we actually use BOGOF, which makes sense. No idea why one would drop the all-important F.

Re: McDonalds Event Driven Architecture

#108

Earlier quoted context omitted.

should probably be BOGOF - buy one get one _free_

but BOGO sounds fun, while BOGOF sounds like an insult, or maybe an alien civilization with terrible poetry

> while BOGOF sounds like an insult

That's a feature, not a bug.

Re: McDonalds Event Driven Architecture

#109

Both my partner and I always have trouble with the McDonald's app (for ordering). I use Android, she uses iOS. As a developer, I've said to myself "This feels like a React Native app that's calling into a mess of microservices" (having worked on that type of project more than once myself). Anyway, I only skimmed the article, but I had a chuckle seeing the title of this article pop up on HN at all.

backend of McDonald's app is handled by a third party new Zealand company plexure

https://www.plexure.com/

not sure what their architecture is

Re: McDonalds Event Driven Architecture

#110
post #107
post #71

Earlier quoted context omitted.

> BOGO I always find this phrase funny. Isn't buying one and getting one the normal state of affairs?

In UK we actually use BOGOF, which makes sense. No idea why one would drop the all-important F.

Not an english speaker, but I can't imagine "get" used for anything non free, especially after a "buy".
Post reply on HN