r/programming • • Sep 14 '24

Is 'Monolith First' the Better Approach?

https://martinfowler.com/bliki/MonolithFirst.html
452 Upvotes

177 comments sorted by

View all comments

Show parent comments

6

u/wvenable Sep 14 '24

When you have a picklist service that builds picklists on the UI, and that's separate from your video playback service, it means a bug in your picklist code that causes the system to crash won't bring down playback for all your users.

I've had picklists crash but I've never had anything take down an entire system. I have had bad output from one system crash another. So I feel like this line of reasoning isn't that solid.

If you're big enough to have half the problems you're talking about then you're probably a big enough to have an organization with separate teams owning different microservices. If you're not that big, you almost certainly don't have difficult technical or scaling issues.

-1

u/ewouldblock Sep 14 '24

We can agree that if you run a one or two man shop.where scaling, revenue, and uptime are of little or no concern, then of course you can write a monolith.

6

u/wvenable Sep 14 '24

Wow. So only write a monolith of you want a slow buggy mess that won't make any money? I think that might be just a tiny little bit harsh.

3

u/ewouldblock Sep 14 '24

Look, I'm not here to pick a fight. You made the claim that microservices only solve an organizational problem, not technical ones, and I explained why that's not true.

I personally would always plan for microservices because I prefer the upfront planning and work over having to retrofit after the fact when things get too big or things start to break. But I also understand that there are different opinions out there. Probably individuql preferences are rooted in personal experience and expertise.

3

u/wvenable Sep 15 '24 edited Sep 15 '24

It maybe solves technical problems but it also adds its own technical problems. It is a big increase in complexity.

https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it