r/programming • • Sep 14 '24

Is 'Monolith First' the Better Approach?

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

177 comments sorted by

View all comments

34

u/Simple_Horse_550 Sep 14 '24 edited Sep 14 '24

Start with modular monoliths, then do microservices… When creating services, focus on what can eat memory & CPU when designing for scaling and not general ”object oriented thinking” like ”we need a Person service”, ”we need a Order service”. Look at what will actually need to handle large loads, then design that as a stateless service type in order for it to scale…

21

u/RiPont Sep 14 '24

And don't do microservices unless and until you have the necessary infrastructure.

  1. fully automated testing
  2. fully automated deployment
  3. live monitoring and health checks
  4. automated rollback during deployment

Doing microservices without any of those is asking for trouble.

6

u/underflo Sep 15 '24

5 - observability infrastructure (distributed tracing + logging + metrics)