Live data from Hacker News

Goodbye Microservices: From 100s of problem children to 1 superstar

segment.com

631–640 of 782 posts

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#631

Going back from 100+ microservice to 1 monolith is another extreme to me...Perhaps you can have 10 macroservices. And shared library shouldn't contain business logic...

> And shared library shouldn't contain business logic...

What's the point then? They become libraries then, not services.

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#632
post #236

The whole article reads like BS to me. So the initial problem was a single queue? Well, then split the queue, no need to go all crazy splitting all the code. Switching to 100+ microservices? There is no need to switch to 100+ repos too, runtime services don't need to have one repo per service, just use a modular approach, or even feature flags. 100+ microservices, some of them with much lower load than others? Then c…

I must agree. Seems like every step could have been solved without jumping to the conclusion that it was because we didn't use a monolith. I've never understood the false dichotomy of microservices vs monolith... just split things when it makes sense. ¯\_(ツ)_/¯

"when it makes sense" isn't a science though; for them it made sense at the time, like how now it makes sense to move back to a monolith.

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#633

Earlier quoted context omitted.

There is commonality across those 140 services that they extracted into a shared library so they weren’t copying that commonality 140 times.

The fix, then, is to put that commonality into a new microservice the other microservices call. The more I read about the problems people have with microservices, the more I'm convinced they've never read about flow-based programming.

Doesn’t that get excessive, making network calls to do what could be more naturally expressed as a method call?

If you have two different teams collaborating or you expand beyond what a single box can do, create services. But if you can express things reasonably as a single service, why make things more complicated and error prone?

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#634

"2020 prediction: Monolithic applications will be back in style after people discover the drawbacks of distributed monolithic applications." -Kelsey Hightower on Twitter https://twitter.com/kelseyhightower/status/94025989833123840...

Can't wait to write sane monolith with libraries instead of microservices.

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#635

Earlier quoted context omitted.

The most telling fact is that it "took milliseconds to complete running the tests for all 140+ of our destinations". I've never worked on a single service whose tests ran that fast, given that the time spent by the overhead of the test framework and any other one-time initialization can take a few seconds just itself. It's great to have tests that run fast, but that's a bit ridiculous. Some rules of thumb I just came…

> never worked on a single service whose tests ran that fast I'd say you've never had good tests. I have a test-suite for a bunch of my frameworks that dates to the mid 90s, with tests added regularly with new functionality. It currently takes 4 seconds total for 6 separate frameworks and 1000 individual tests. Which is actually a bit slower than it should be, it used to take around 1-2 seconds, so might have to dig…

Not all domains have libraries which can run tests that fast?

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#636

Microservices are an organizational and design choice that is intended to mirror the structure of the teams or engineers, the actual human beings doing this stuff. It seems like Segment didn’t really understand this at all, and instead decided to have seemingly arbitrary and rediculous service boundaries that had no relationship to the real world. See also people who create poor abstractions in their code and other s…

> This isn’t an article about how microservices architecture is somehow bad, it’s an article about how bad Segment’s engineering team is.

Wow. This is the level of discourse we've reached here now.

Why the ad hominem? If you have an actual point to make on technical merit, by all means, make it. Were you passed on in a job interview at Segment? Why the hostility? (honest question)

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#637
All software architects are just going gaga over this Microservices architecture. Microservices architecture is not for everyone. You need to consider a lot of factors before adopting this model in your system and organization. Everybody is only talking about the positive aspects of moving to microservices. Ask yourself, do you really need microservices architecture? To find out, you should ask yourself these questions:

How independent do you want your services to be?

How well your code is organized? Mono repo or multiple repositories?

How much operational complexity can your team handle?

Do you have a Continuous Delivery platform in place?

How is your team organized? Do they have knowledge about different toolsets and microservices architecture?

Then focus on the existing case studies like this and make an architectural strategy.

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#638

Earlier quoted context omitted.

I must agree. Seems like every step could have been solved without jumping to the conclusion that it was because we didn't use a monolith. I've never understood the false dichotomy of microservices vs monolith... just split things when it makes sense. ¯\_(ツ)_/¯

"when it makes sense" isn't a science though; for them it made sense at the time, like how now it makes sense to move back to a monolith.

Except it wasn't a good idea when they did it either. It's trying to find a way to use a specific solution rather than finding the correct solution.

Re: Goodbye Microservices: From 100s of problem children to 1 superstar

#640
post #20

Am I understanding correctly that they had 3 engineers and >140 microservices? Microservices definitely have their own costs and tradeoffs, but 140 services and 3 engineers sounds like just a terrible engineering choice.

At the time we did the split, we had 140 destinations with ~8 engineers, of which roughly 3 full-time engineers spending most of their time just keeping the system alive.
Post reply on HN