News for hackers. Stuff that matters.
Re:In Defence of the Monolith, Part 2 by abraae on Sunday March 26, 2017 @08:22PM (#13964225)
All these architectural discussions seem to assume a kind of black box business system where the microservices vs monolith discussion is an internal one, conducted by and for techies, and limited to a rigid view of the business requirements.

Perhaps the early microservices evangelizers such as Netflix have created this environment - after all, who cares whether Netflix is a monolith or a swarm of microservices as long as billing works and users get content when they want?

There's another strong driver for microservices however, which is customer choice, particularly in SaaS settings.

In our industry (HR software), there is no one right answer, or one business problem - customers demand choice, every customer has slightly different needs, and microservices are indicated because they allow customers to pick and choose. The same is true for most SaaS areas I would say.

As an example, one tiny sub-area of HR software, employee engagement improves when we offer employees meaningful benefits. It turns out that many employees love their pets, and offering pet insurance could be a great perk (the HR space is so big that just this niche within a niche could be a multi-million dollar opportunity for someone with a good offering).

Yet would anyone seriously consider altering a monolithic HR application to add pet insurance management? Never. The only viable solution is a microservice, that does just this, and does it well, and plugs into the rest of the stack via APIs.

tl;dr: in the SaaS world, microservices are sometimes indicated not for architectural reasons, but to support customer choice, which is far more important.

Re:In Defence of the Monolith, Part 2 by sbov on Sunday March 26, 2017 @11:53PM (#13965064)
It seems like you're talking about a plugin architecture, not necessarily microservices. Microservices could be a way to implement it. Not all systems built with microservices could support a plugin like that, not all plugins need to use microservices, and even if you do you might have to write some form of adapter to integrate someone else's service with your system.

E.g. most video games support stuff like this, but they definitely don't use microservices.

Re:In Defence of the Monolith, Part 2 by brianwawok on Monday March 27, 2017 @08:08AM (#13966978)
Yes, is this a joke? You need a microservices to offer pet insurance?

Pretty sure you could do it with a new view and an if statement in any MVC every built...

Re:In Defence of the Monolith, Part 2 by vitalus on Sunday March 26, 2017 @09:57PM (#13964572)
> Yet would anyone seriously consider altering a monolithic HR application to add pet insurance management? Never.

Sure they might? I can't see a category of business features that would naturally lend themselves to being microservices rather than extended features of a monolith unless there was some real technical challenge that was otherwise more easily solved by being in a microservice.

Re:In Defence of the Monolith, Part 2 by nine_k on Sunday March 26, 2017 @11:09PM (#13964844)
The challenge can be non-technical. The tech can be trivial, the business know-how, key.
Re:In Defence of the Monolith, Part 2 by empthought on Sunday March 26, 2017 @08:37PM (#13964282)
I think what you have there is a monolithic HR application and a smaller monolithic pet insurance application that exchange information via enterprise integration, not a microservice architecture.
Re:In Defence of the Monolith, Part 2 by stuartaxelowen on Sunday March 26, 2017 @08:55PM (#13964332)
"Microservices are just tiny monoliths" - gasp
Re:In Defence of the Monolith, Part 2 by empthought on Sunday March 26, 2017 @09:09PM (#13964379)
They're not, though. sed is a microservice. Emacs is a monolith. Sed is not a tiny emacs.
Re:In Defence of the Monolith, Part 2 by parenthephobia on Sunday March 26, 2017 @10:30PM (#13964698)
Nobody said it was: sed is a tiny perl.
Re:In Defence of the Monolith, Part 2 by arglwarg on Monday March 27, 2017 @04:40AM (#13966045)
sed is maximum viable perl. Well maybe awk, but that is pushing it.
Re:In Defence of the Monolith, Part 2 by abraae on Sunday March 26, 2017 @08:48PM (#13964307)
I don't usually find arguing over names to be productive. Your "smaller monolithic" application is my microservice. What's in a name?

But as a customer, if I have a HR app from vendor A, and then I want to add a pet insurance app from vendor B, the last thing I want to do is to roll out some creaky enterprise integration process/framework/product. If those products work together via APIs why should I take any of the burden of integration?

Re:In Defence of the Monolith, Part 2 by empthought on Sunday March 26, 2017 @09:07PM (#13964372)
What's in a name? Microservices are fine-grained and operate on a single bounded context, where applications typically have coarser-grained interfaces and involve multiple contexts. I suppose if your pet insurance system were only to provide a constrained list of values of pet insurance products, and provide an interface to associate them with a user ID from the HR monolith, then it's a microservice. (Of course, you've pushed off the integration with the _actual_ pet insurance app somewhere else, but that might be OK.)

"APIs" are an enterprise integration technique [1]. There's nothing inherently creaky or frameworkey about them.

[1] http://www.enterpriseintegrationpatterns.com/patterns/messag...

Re:In Defence of the Monolith, Part 2 by qaq on Sunday March 26, 2017 @10:59PM (#13964805)
calling something over http vs calling functions or class methods does not make much difference. So in your example how does it make it easier to add vs monolith? Monolith can have well defined modules and interfaces and microservices could be an entangled mess.
Re:In Defence of the Monolith, Part 2 by nine_k on Sunday March 26, 2017 @11:07PM (#13964837)
No one owns the whole stack. You pick your "main" software, and customize it with third-party services. None of it runs on your premises. No party is willing to expose much more than an API.
Re:In Defence of the Monolith, Part 2 by qaq on Sunday March 26, 2017 @11:38PM (#13964982)
"No one owns the whole stack" - depending on the nature of what you are integrating this can either speed things up or slow things down

"You pick your "main" software, and customize it with third-party services" - not much difference monolith vs microservices

"None of it runs on your premises" - totaly unrelated to monolith vs microservices

"No party is willing to expose much more than an API" - again consuming an API can actually be easier in monolith vs microservices