News for hackers. Stuff that matters.
Re:I've been merging microservices back into the monolith by konschubert on Tuesday December 22, 2020 @05:28AM (#25504842)
Yea.

Once you have good domain boundaries you can use microservices to make the split more visible for less thoughtful devs and use the associated tooling (contract testing, ... ) to reduce operational coupling around deployments and tests.

But aside from that, anything you can do with microservices you can also do in monoliths.

Re:I've been merging microservices back into the monolith by pydry on Tuesday December 22, 2020 @05:53AM (#25504989)
Some people think that if you start creating micro services you will magically just "get" those boundaries.
Re:I've been merging microservices back into the monolith by kenniskrag on Tuesday December 22, 2020 @06:02AM (#25505050)
and magically get the problem of distributed transactions. :)
Re:I've been merging microservices back into the monolith by heavenlyblue on Tuesday December 22, 2020 @07:42AM (#25505688)
I am yet to see a single monolith that doesn't deal with exactly the same issue itself.
Re:I've been merging microservices back into the monolith by pc86 on Tuesday December 22, 2020 @08:14AM (#25505895)
Aren't monoliths by definition not distributed?
Re:I've been merging microservices back into the monolith by heavenlyblue on Tuesday December 22, 2020 @09:26AM (#25506516)
A true monolith is like a true function - it's absolutely useless because everything it does is pure and therefore it can't interact with reality at all.

In less metaphorical terms: you still need to sync external APIs, sync filesystem with the database, deploy to S3 as you don't want to saturate your web workers, or have conflicts in your parallel red-blue deployments.

If your monolith doesn't do anything I had just described then you probably aren't doing anything exciting anyway so it's quite unlikely that you've got a lot to say about software architecture.

Re:I've been merging microservices back into the monolith by caogecym on Tuesday December 22, 2020 @09:25AM (#25506510)
monolithic source code can be deployed across multiple servers.
Re:I've been merging microservices back into the monolith by konschubert on Tuesday December 22, 2020 @06:02AM (#25505052)
Oh, you don't know how true this is.
Re:I've been merging microservices back into the monolith by chris_j on Tuesday December 22, 2020 @08:59AM (#25506307)
I'd be interested to hear about the sorts of systems that you've worked on and how anything you can do with microservices you can do with a monolith. Some problems that I've had to solve in recent years:

- Urgently deploying a fix in one part of the system without having to deploy the _whole_ system. - Updating the framework or the language (my favourite: updating from Java 8 to Java 11, which broke a lot of things and which we would have hated to have to do all in one go, if we'd had a monolith). - Scaling different parts of the system independently (both in terms of running different services on different numbers of nodes and in terms of using different hardware for application nodes and DBs). - Load testing different parts of the system independently. - Trialling a new language or framework in a small part of the system without affecting the rest of the system.

I personally wasn't aware of how much of a big deal some of these problems would have been until our system grew to the size that it is now, with a dozen or so development teams working on at least as many services. I personally have no idea how you could solve these problems on a system this size without splitting it into independently deployable services, without incurring a massive cost.

Re:I've been merging microservices back into the monolith by tsss on Tuesday December 22, 2020 @07:05AM (#25505467)
> But aside from that, anything you can do with microservices you can also do in monoliths.

Microservices can give you some things that a modular monolith can't provide: independent deployments, different tech stacks, independent scaling and better resiliency.