Live data from Hacker News

Build the Modular Monolith First

fearofoblivion.com

1–10 of 90 posts

Re: Build the Modular Monolith First

#2
I 100% agree w/ this and play an enterprise architect type role at my employer but I would totally get lambasted if I proposed this. Honestly a lot of the ppl I work w/ aren't developers and never were. They just have big mouths and climbed the ranks. Sadly they're the ones who write my reviews and could get me canned so I have to play ball.

Re: Build the Modular Monolith First

#4
I think more startups need to consider building monoliths first.

Micro-service architecture definitely has the advantage at scale, but the advantage of monoliths is the speed that you can build and improve them. Microservices require much more planning and architecture discussions compared to monoliths.

Microservices also can have incredible performance improvements over monoliths (being able to scale or tailor each micro service to its' specific needs as opposed to "on size fits all" of monoliths). So yes they can be right-sized in your cloud easier and have tailored performance, but it comes at the complexity of the deployment and management of the system. By comparison monoliths can sometimes be managed without a dedicated SRE/DevOps/CloudEngineering team.

Monoliths tend to be cheaper to deploy (up to a certain point).

Startups should consider building on monoliths more often. For proof of concept and MVP tools, monoliths are the way to go. Solo developers also are much better served with monoliths compared to micro services. But I will say, eventually if you scale big enough it will eventually make sense to leave monoliths behind and move towards micro services. Yes there are exceptions (someone will write, "but XYZ company is worth 9 gajillion dollars and runs on a monolith), but generally speaking I consider starting with a monolith and moving to micro services after you hit market acceptance for your product.

Re: Build the Modular Monolith First

#5
During the Covid pandemic, I watched from a distance a group of 6 people start and destroy a project.

After the 6 months, they didn't even have a a MVP.

This was run on a 6 month fund from the local government. They didn't know each other but they all knew that after 6 months it'd be over unless they'd secure more funding.

They spent the time faffing around, configuring things, splitting things, ... effectively making things harder for themselves.

Re: Build the Modular Monolith First

#6

I 100% agree w/ this and play an enterprise architect type role at my employer but I would totally get lambasted if I proposed this. Honestly a lot of the ppl I work w/ aren't developers and never were. They just have big mouths and climbed the ranks. Sadly they're the ones who write my reviews and could get me canned so I have to play ball.

Been there, done that, caused a burnout after a long time. 0/10, wouldn't recommend. Pay was good though.

Re: Build the Modular Monolith First

#7
post #5

During the Covid pandemic, I watched from a distance a group of 6 people start and destroy a project. After the 6 months, they didn't even have a a MVP. This was run on a 6 month fund from the local government. They didn't know each other but they all knew that after 6 months it'd be over unless they'd secure more funding. They spent the time faffing around, configuring things, splitting things, ... effectively makin…

That's what we're currently working on.

Only 20% of the work now goes into actually improving the product.

Re: Build the Modular Monolith First

#8
post #7
post #5

During the Covid pandemic, I watched from a distance a group of 6 people start and destroy a project. After the 6 months, they didn't even have a a MVP. This was run on a 6 month fund from the local government. They didn't know each other but they all knew that after 6 months it'd be over unless they'd secure more funding. They spent the time faffing around, configuring things, splitting things, ... effectively makin…

That's what we're currently working on. Only 20% of the work now goes into actually improving the product.

That may be better than 100% of the work going into improving the product, taking 1/5 the speed it should.

Re: Build the Modular Monolith First

#9
I think an important thing to keep in mind when discussing monoliths or Microservices is that you can build modular code without needing multiple binaries, processes, or server instances. If you follow best practices when creating a monolith, creating well-defined modules with clear input and output boundaries, then it should be relatively easy to split those modules into separate programs and create ways for those modules to communicate, if it later becomes necessary to move towards a micro-services architecture.

Re: Build the Modular Monolith First

#10
Ditto. You should start with a monolith with a vision of how to break it down into microservices (if ever needed).

When my company got a contract for a new project, my colleague created a prototype, a bare-bone solution that had 9 web projects that communicated over REST, because microservices. I suggested starting with monolith. Guess whose design was accepted because it was more sexy. It never got to production for multiple reasons, but part of it was that development was awfully slow. Orchestrating changes across services when development is in flux is extremely hard.

Post reply on HN