Live data from Hacker News

McDonalds Event Driven Architecture

medium.com

31–40 of 134 posts

Re: McDonalds Event Driven Architecture

#31
post #17
post #11

Earlier quoted context omitted.

But ruby is too slow!

Lots of their code is in Go

Way way way more of our code in Ruby.

Go (and now Rust) is really only used for very low level services with a high SLA (Like Infrastructure). Almost all business logic is Ruby + Rails.

Re: McDonalds Event Driven Architecture

#32
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 have never seen what you are describing called a microservice. Microservice always means some kind of independent application in its own runtime.

Re: McDonalds Event Driven Architecture

#33
post #27

Earlier quoted context omitted.

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

Re: McDonalds Event Driven Architecture

#34
post #29
post #24

Earlier quoted context omitted.

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?

One reason come to mind: Conway's law. If you have a monolithic team a monolithic server is usually a pretty good solution to a problem. If you have multiple teams you're likely to wind up with an architecture that lets them work more independently, leading to separate release schedules.

... which perhaps just shifts the question to "why do you need multiple independent teams and not just use a monolithic development team?"

Re: McDonalds Event Driven Architecture

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

>with globally distributed teams of developers with diverse skill levels

The last place I worked with a monolith (~100 developers) put quite a bit of work into making sure everyone didn't step on everyone else's toes. This mostly propagated as optimizing CI and improving test quality (since a single flakey test could derail everyone's build)

As to why "microservices" versus a few "normal" sized services

I'm not sure why it's always "monolith" or "microservices"

Re: McDonalds Event Driven Architecture

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

From the company's perspective, the hoped for result is mostly recruiting oriented, a little bit is related to offering career advancement (public visibility of your work) to individuals that write or are featured in the blog.

Re: McDonalds Event Driven Architecture

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

No post body was provided.

Re: McDonalds Event Driven Architecture

#40
post #29
post #24

Earlier quoted context omitted.

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?

No post body was provided.
Post reply on HN