I extremely loved this article.
"Pebble vs. Brick" is a great heuristic to use when thinking about micro service boundaries. Good post.
Thanks for the article. I have had countless arguments with colleagues over this as well. Most times, a monolithic approach is perfect for a solution and one doesn't need to overengineer
Great post! When I now think of a lot of SaaS products, monolithic would just do fine, but they tend to go towards micro services. Unless there is an extreme volume of concurrent users, from your experience when would you advocate a micro services architecture?
I am not sure I understood this paragraph correctly, but isn't it a simple implementation detail of the "Request" service? If it fails to update, it should not proceed to placing an order -> "Sorry something went wrong with your order. Please try again." should be sent back to the customer.
I do get the point, though, that with the monolith there are less points that you have to consider to maintain atomicity.
Well this one comes from (in my opinion) a poor design decision for how the services communicate in the given example.
In the case of the pizzeria here, I would change the design of the system so that the "Request" service packs all necessary data in a "Place Order" job that is sent tot he "Order" service. So the order placement would contain
{ pizza: <Pizza ID in the products service>, delivery_address: "42 Universe street, Alabama" }This is good article nevertheless and the main message that microservice architecture brings extra complexity that is non-existent in monolith is very much true.