Earlier quoted context omitted.
Your analogy is backwards, nlogn > n.
This comment was grayed out at the time I upvoted and am commenting. Either readers don't appreciate pedantry or don't realize what the point was, but for any n > 2, n * logn is a larger number than n. I believe what the original poster meant to say was microservices grow like O(klogn) and monoliths O(n), i.e. microservices have some upfront constant cost that is large enough that, for small projects, monoliths will…
Meta’s Microservice Architecture [pdf]
91–100 of 130 posts
Re: Meta’s Microservice Architecture [pdf]
#92Earlier quoted context omitted.
You do spawn a new monolith. You make one group the CPU intensive one and route that traffic there. Same concept as a microservice except that it comes with a bunch of dead code. But the dead code is not that resource expensive these days.
I see, so basically we are applying scaling, but instead of scaling the bottleneck as its own part we scale everything. I somewhat fail to see how that saves much effort; routing setup sounds like a hassle. What we‘re using at my work is just a mono repo with all services in it, which works pretty well, and we‘re like 7 BE devs
Re: Meta’s Microservice Architecture [pdf]
#93Earlier quoted context omitted.
Did it seem like that team was aware of Conway's Law and was actively considering it in their architectural/system design decisions?
They can consider it all they want, that won't change the outcome. It is inevitable.
Re: Meta’s Microservice Architecture [pdf]
#94Earlier quoted context omitted.
Please elaborate on that. Without spawning a new monolith, how do you scale it. Add more resources?
You run another instance of it.
I see how it works, and I completely agree that to start out, so going from PoC to first business implementation, a monolith is the way to go (unless the goal from the start is 100 million concurrent users I guess).
But after that initial phase, does it really matter if you use one or the other? You can overengineer both and make them a timesink, or you can keep both simple. I do agree on things like network latency adding up, but being able to completely isolate business logic seems like a nice gain. But Im also not talking about real micro level (i.e. auth login and registration being different services), but more macro (i.e. security is one, printing another(pdf,csv,word etc), BI another one
Re: Meta’s Microservice Architecture [pdf]
#95So many companies shoot themselves in the foot chasing Google/Meta/Netflix backend architectures. If your developer count is in the 10s, you are committing professional negligence chasing a microservices architecture.
Many may know it but for those that don't: Enjoy https://www.youtube.com/watch?v=y8OnoxKotPQ
Re: Meta’s Microservice Architecture [pdf]
#96Earlier quoted context omitted.
Yes, however I am not sure if Dijkstra meant goto in the sense of jump outside of a function. I don't know enough about Algol 60 and languages of the time, but if you allow usage of goto between different functions you will have a corrupt stack in no time, so I'll be surprised if it was implemented. Going back to the original discussion, my point was that the only statements that are real gotos still in usage (except…
Functions do not exist in the context of the "Go to statement considered harmful" paper, so there is no good analog in there. Further, he is specific that it is only about unbridled gotos. continue and break are decidedly bridled. In reality, the paper just doesn't apply to any language created in the last several decades, even those which use the goto keyword. We bought in to structured programming. Except I posit t…
virtual polymorphism for example is completely unexpected, as well as function pointers and other constructs that in my opinion are harder to track than exceptions
Re: Meta’s Microservice Architecture [pdf]
#97Earlier quoted context omitted.
That also works with monoliths ... Usually you would make your monolith stateless and distribute the incoming requests / events across many instances that can be spawned / killed depending on volume of requests and health status of instances.
When you kill a monolith you kill a random selection of inflight tasks from every part of your application. So a rare bug in your mailing list signup workflow that hangs the process and causes it to be killed causes a random selection of inflight webpage requests, payment transactions, message handlers and business processes to fail. And if those failures aren’t all cleanly handled, your mailing list signup bug could…
Re: Meta’s Microservice Architecture [pdf]
#98So many companies shoot themselves in the foot chasing Google/Meta/Netflix backend architectures. If your developer count is in the 10s, you are committing professional negligence chasing a microservices architecture.
Indeed, but I think we are too late for that. It's not like the usage of GOTO: someone who mattered wrote that its usage should be considered harmful, and hence nowadays GOTO has practically a niche usage. If only someone that mattered would have written on time an essay titled "Microservices Architecture Considered Harmful".
Re: Meta’s Microservice Architecture [pdf]
#99So many companies shoot themselves in the foot chasing Google/Meta/Netflix backend architectures. If your developer count is in the 10s, you are committing professional negligence chasing a microservices architecture.
Many may know it but for those that don't: Enjoy https://www.youtube.com/watch?v=y8OnoxKotPQ
Re: Meta’s Microservice Architecture [pdf]
#100Earlier quoted context omitted.
You run another instance of it.
So you have to take care of routing etc. I see how it works, and I completely agree that to start out, so going from PoC to first business implementation, a monolith is the way to go (unless the goal from the start is 100 million concurrent users I guess). But after that initial phase, does it really matter if you use one or the other? You can overengineer both and make them a timesink, or you can keep both simple. I…