Earlier quoted context omitted.
This is hn so obviously your comment has to be the top voted comment. I am really tired of this trend here. No. microservice vs monolith is not the deciding factor of the developer speed or bugs. It wouldn't even be top 5 factor for good developers. Difference between microservices and monolith technically is just network rpc rather than function call. In itself, it doesn't make much of a difference. If a developer f…
It's not "just". The network calls introduces all sorts of added complexity.
Meta’s Microservice Architecture [pdf]
41–50 of 130 posts
Re: Meta’s Microservice Architecture [pdf]
#42I've had this thought for a long time that if you have a completely functional code base (as in no side-effects), making the decision between a microservice approach and a monolith approach is fundamentally transparent. Any functional code can not only be split onto multiple threads, but multiple servers (at the cost of latency).
Re: Meta’s Microservice Architecture [pdf]
#43obligatory: you are not Netflix/Meta/Google... so you don't need to do this architecture for your own startup. Just spin up a monolith until you have something that needs breaking down and even then it might not need it or you might pivot to doing something else entirely.
Re: Meta’s Microservice Architecture [pdf]
#44I've had this thought for a long time that if you have a completely functional code base (as in no side-effects), making the decision between a microservice approach and a monolith approach is fundamentally transparent. Any functional code can not only be split onto multiple threads, but multiple servers (at the cost of latency).
Re: Meta’s Microservice Architecture [pdf]
#45Microservice is the atom.
Re: Meta’s Microservice Architecture [pdf]
#46Earlier quoted context omitted.
Simple, if a service is not answering for a certain amount of time, a new Kubernetes pod is brought up and the old one is killed. :)
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.
Re: Meta’s Microservice Architecture [pdf]
#47So 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.
> If your developer count is in the 10s, you are committing professional negligence chasing a microservices architecture. Such a strong statement. Might a lack of industry experience be driving such strong convictions of yours? Here are some reasons, off the top of my head, why a company would want to embrace microservice architecture, with all its benefits and complexities, with a developer count in the 10s: 1. You'…
Just curious, how does microservices help here?
Re: Meta’s Microservice Architecture [pdf]
#48Earlier quoted context omitted.
This is hn so obviously your comment has to be the top voted comment. I am really tired of this trend here. No. microservice vs monolith is not the deciding factor of the developer speed or bugs. It wouldn't even be top 5 factor for good developers. Difference between microservices and monolith technically is just network rpc rather than function call. In itself, it doesn't make much of a difference. If a developer f…
Placing a network call in your system also introduces: - distributed systems problems - think consistency and ACID - increased refactoring complexity - you now have to change the api three times instead of 1 to deploy the change with 0 downtime - requirements for more generic CI/CD pipelines - you will develop many microservices, it's important to do it fast it's not "just" a network rpc, even technically
Except is is. Microservice doesn't mean distributed setup. For the first problem, yes service running in multiple pods causes issues, but even monolith could face the same issue. Statefulset based microservices not only exists, but is a pretty common setup. Also I would even call multiple container on the same pod as microservice, which basically solves all of the problem.
There are many ways to solve second problem. Some folks create different API version. I prefer different deployment.
Last is a problem for monolith. I know of big companies where compile time is in order of an hour for monolith, even for small change.
Re: Meta’s Microservice Architecture [pdf]
#49Earlier quoted context omitted.
This is hn so obviously your comment has to be the top voted comment. I am really tired of this trend here. No. microservice vs monolith is not the deciding factor of the developer speed or bugs. It wouldn't even be top 5 factor for good developers. Difference between microservices and monolith technically is just network rpc rather than function call. In itself, it doesn't make much of a difference. If a developer f…
A few questions if its the same... - In case of errors, do we get a full backtrace of function calls across service boundaries? - Is the function call as cheap as passing an argument? What if we're passing 1KB? 1MB? 1GB? - Can we use a debugger to step in and out of those functions? - Can we spin up a simple test runner to integration test a few levels of function calls together? Preferably something like Jest that h…
Unless you don't discard the error, then yes
> - Is the function call as cheap as passing an argument? What if we're passing 1KB? 1MB? 1GB?
No it is not. In general microservice costs are bit higher.
> Can we use a debugger to step in and out of those functions?
You could trace across services but passing the context. Also attaching debugger is possible afaik.
> Can we spin up a simple test runner to integration test a few levels of function calls together?
I use docker compose and it can be done
> - Can all database modifications run in a single transaction so that we know that either all of them happened or none at all?
Yes. I don't see how this is different than function call.
Re: Meta’s Microservice Architecture [pdf]
#50Earlier quoted context omitted.
> If your developer count is in the 10s, you are committing professional negligence chasing a microservices architecture. Such a strong statement. Might a lack of industry experience be driving such strong convictions of yours? Here are some reasons, off the top of my head, why a company would want to embrace microservice architecture, with all its benefits and complexities, with a developer count in the 10s: 1. You'…
> Your chief compliance officer is intimately familiar with the data protection benefits that microservices bring and is leaning heavily into it in their regulatory submissions as a way to compensate for some other gap in the business Just curious, how does microservices help here?