Live data from Hacker News

McDonalds Event Driven Architecture

medium.com

21–30 of 134 posts

Re: McDonalds Event Driven Architecture

#21

Earlier quoted context omitted.

Well, I mean really most of the micro service architectures are just monoliths with network calls between the components.

That's called distributed monolith. It's pretty much guaranteed to happen if the developers don't introduce a lot of redundancy while splitting up the services.

If your services need to be chatty with eachother then the boundaries of the services are wrong.

Hopefully by redundancies, you dont mean sharing data access logic

Re: McDonalds Event Driven Architecture

#22
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.

Re: McDonalds Event Driven Architecture

#24
post #12

Earlier quoted context omitted.

Well, I mean really most of the micro service architectures are just monoliths with network calls between the components.

yeah, so what about locking? it must be a nightmare to make sure that the components all work together as intended...

So, normally, you do not need to lock. If all your services are single threaded, and you have a good transactional model, you only need to duplicate services to create parallel routes.

You need to lock when you write a shared area from multiple sources with no opinion on write ordering.

But say your pipeline is client-> decorator -> processor -> observer with client publication -> external partner, each input will go into a set of instances different from the previous and next one, and rejoin at the output who will queue and order them. You have parallel heavy work and sequential light result publication. Your simple output must be as fast as the sum of your parallel routes to minimize queueing.

Ofc it s more complex, and I prefer 0 network hop myself, but I work on a large investment bank micro service system and we do not lock, and the component are both simple and complex enough that when one disappear, everything else waits or rebalances, and when it reappears it can catch up automatically, and go on. It consumes large amount of memory to keep a duplicated state in each component and persistence is not guaranteed to be on time (in fact, our persistence layer was 30 minutes behind by mid day, for years, until we dug into the 30yo sql)

Re: McDonalds Event Driven Architecture

#25
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?

Can I get promoted to Manager if I get a degree in Hamburger-data-ology? From what I can tell the career path is into Corporate hell. https://www.uopeople.edu/blog/hamburger-education-inside-mcd...

If you want to be a franchisee, the easiest way (other than having $3-$10m lying around) is working for McDonalds, taking AOC at Hamburger U, and then joining their franchise program where they "lease" you everything for a larger take of the annual sales than if you pony up the franchise fee and buy a franchise location.

Re: McDonalds Event Driven Architecture

#26
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?

It is often an OKR for senior/staff developers to write blogs or tech articles to promote the companies engineering culture, especially for organisations that are not 'traditional' tech firms.

Re: McDonalds Event Driven Architecture

#27
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…

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 use a thread in a single process for background processing.

Re: McDonalds Event Driven Architecture

#28
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…

The background process is just threads in the monolith, that's not a microservice. That a different pod running the same code might pick up the async task doesn't make it less of a monolith either.

Re: McDonalds Event Driven Architecture

#29
post #24
post #12

Earlier quoted context omitted.

yeah, so what about locking? it must be a nightmare to make sure that the components all work together as intended...

So, normally, you do not need to lock. If all your services are single threaded, and you have a good transactional model, you only need to duplicate services to create parallel routes. You need to lock when you write a shared area from multiple sources with no opinion on write ordering. But say your pipeline is client-> decorator -> processor -> observer with client publication -> external partner, each input will go…

so why do you need this to be distributed and why can you not use a monolithic server application, perhaps with background threads?

Re: McDonalds Event Driven Architecture

#30
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?

To your point, Shopify's monolith was handling 1.27M requests/sec on Black Friday: https://twitter.com/ShopifyEng/status/1597983918900510720 Thread: https://threadreaderapp.com/thread/1597983918900510720.html

> averaging 3 Terabytes per minute of egress traffic across our infrastructure. That’s 4.3 Petabytes per day!

I’d hate to get that AWS bandwidth bill.

Post reply on HN