Live data from Hacker News

McDonalds Event Driven Architecture

medium.com

41–50 of 134 posts

Re: McDonalds Event Driven Architecture

#41
post #5

why does everything have to be microservice oriented and what's wrong with a simple monlithic application that runs the whole thing? also, when are those ice cream machines going to get fixed?

In your monolith if you offload a request to a queue and have a background process processing the queue messages, what do you call that module processing messages? Is it a component of your monolith? I think a lot of teams would call it a microservice, I could see some people considering it a component of a service. Unless you're confounding microservices w/ async architectures and saying to drop asynchronous pattern…

What are you talking about?

What makes it a service soup is the soup of services on the other side of the queue processor. If those components weren't services, the application would be a monolith.

Anyway, there many reasons to organize your code on services, and McDonalds is large enough for them to be perfectly valid. But if you take a closer look, those components on the article aren't the ones that do anything, they are just new queue processors that may or may not finally deliver your messages to the destination. That's an irksome architecture.

Re: McDonalds Event Driven Architecture

#43
> 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 get around it not being available? what’s the real story here. interested to see where this goes

Re: McDonalds Event Driven Architecture

#45
post #2

While this satisfies some idle curiosity, I don't really get what justifies spending the resources in posting such stuff. Is this a recruitment tactic somehow for such companies?

I have a hunch that's part of it. I also think they're trying to show that they're as technically competent as Chik-fil-A, who has been doing this for a while now. https://medium.com/chick-fil-atech

Thinking about it, that makes sense, given how gargantuan Chick-Fil-A is, but the two chains leave very different impressions to me. Chick-Fil-A feels like they're going out of their way to make it seem like there are friendly humans running everything, to the point of having employees with tablets stand outside at the drive-thru to take your order; lately, they've even been laying off the robotic "my pleasure" thing. McDonald's, on the other hand, feels like a clumsy extraterrestrial sidling up and saying "What is up, my fellow human, amirite?" The one by me is obsessed with pushing the little how-are-we-doing survey on the receipt; I don't think I've ever been there and not been given one. When I see their TV commercials, I keep expecting a flurry of tentacles to burst out of the smiley-person suits. But under the hood, they're both furiously optimizing everything they can.

Re: McDonalds Event Driven Architecture

#47
post #33
post #27

Earlier quoted context omitted.

I don't need another process. I can use a thread. If the teams you are talking about never heard of threads and only know about microservices, then there is something seriously wrong with their CS education. Maybe they all were hired via leetcode. That could explain it. I'm not confounding anything. Distributed programming has its applications and uses, but if you don't have a good reason to use it, then don't, and u…

And how does it recover incomplete tasks in case of sudden power outage? Microservices use persistent message brokers for that, which are not there in threads. Or are these monoliths all treated as pets with redundant power supply and network lines?

Thread does not imply no queue or no persistent storage. In fact, if you use something like Hangfire you already have that.

Re: McDonalds Event Driven Architecture

#48

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.

Completely unrelated probably but who knows but this reminded me of the time when my McDonald's receipt printout from that self-ordering terminal started with a bunch of XML, then the regular receipt part and then ended in a bunch of XML. That was fun.

Re: McDonalds Event Driven Architecture

#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 based on order volume couldn't happen. The store manager would have to do a daily physical inventory count to know how many bags of fries, boxes of drink straws, etc. to reorder.

Post reply on HN