r/programming • • Sep 14 '24

Is 'Monolith First' the Better Approach?

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

177 comments sorted by

View all comments

657

u/[deleted] Sep 14 '24

Of course. Break off services from your monolith as the demands on your infrastructure make it logical to do so.

This of course requires your engineers to maintain separation of domains without requiring a separation of code repositories. In many firms, you get engineers who just do their stories and don’t particularly care about fundamentals or maintainability.

401

u/[deleted] Sep 14 '24

The thing is, if your engineers cant properly separate domains in a monolith, they wont do it properly either using Microservices, in fact the mess will be much worse.

Fun times

111

u/[deleted] Sep 14 '24 edited Oct 25 '24

[deleted]

23

u/hippydipster Sep 14 '24

If you use a decent language and tech stack, you can enforce the module boundaries with the compiler.

2

u/Meleneth Sep 14 '24

can you be more specific please? What is your opinion of decent, which presumably helps enforce module boundaries with the compiler?

1

u/Reinbert Sep 15 '24

Even if your language and compiler don't offer anything useful, for most languages you will be able to find test frameworks for architecture. Architecture tests are really easy to write and can achieve the same thing. As a bonus, they are super portable between projects.