Live data from Hacker News

You want microservices, but do you need them?

docker.com

101–110 of 151 posts

Re: You want microservices, but do you need them?

#101
post #96

I would really like to send this article out to all the developers in my small company (only 120+ people, about 40 dev & test) but the political path has been chosen and the new shiny tech has people entranced. What we do (physics simulation software) doesn’t need all the complexity (in my option as a long time software developer & tester) and software engineering knowledge that splitting stuff into micro services re…

IMO, Engineering mindset is a huge challenge when it comes to 'do you do microservices' And by that, I mean that I have at times seen and/or perhaps even personally used as a cudgel - "This thing has a specific contract and it is implicitly separate and it forces people to remember that if their change needs to touch other parts well then they have to communicate it". In the real world sometimes you need to partition…

but fr at facebook we just had unit tests. if someone else broke your code it’s your fault unless you have tests.

there are of course microservices for things like news feed etc, but iirc all of fb.com and mobile app graphql is from the monolith by default.

Re: You want microservices, but do you need them?

#102

I don't want or need microservices. What I want is for people to stop putting TCP roundtrips in between what would otherwise be simple function calls in a sane universe. I don't want to have to take a graduate-level course on the CAP theorem to clock in and work on whatever "Uber for dogs" nonsense is paying my rent. You almost certainly don't have a scaling problem that necessitates a distributed system, I guarantee…

> your OS does that

Which one?

Re: You want microservices, but do you need them?

#103
post #4

Earlier quoted context omitted.

I feel that if you have multiple sets of application logic that need to access the same data, there should be an internal API between them and the database that keeps that access to spec.

Only allow clients to execute stored procedures?

That could certainly be one way to handle it, if your specific problem domain supports that logic being in stored procedures.

Re: You want microservices, but do you need them?

#104
post #65

On the theme of several other responders: I don't want microservices; I want an executable. Memory is shared directly, and the IDE and compiler know about the whole system by virtue of it being integrated.

Probably works OK for a small project with a close knit team of skilled contributors where there's some well defined structure and everyone has sufficient high level understanding of that structure to know what kinds of dependencies are or are not healthy to have. But, unless you have some way of enforcing that access between different components happens through some kind of well defined interfaces, the codebase may…

> But, unless you have some way of enforcing that access between different components happens through some kind of well defined interfaces, the codebase may end up very tightly coupled and expensive or impractical to evolve and change

You are describing the "microservice architecture" that I currently loathe at my day job. Fans of microservices would accurately say "well that's not proper microservices; that's a distributed monolith" but my point is that choosing microservices does not enforce any kind of architectural quality at all. It just means that all of your mistakes are now eternally enshrined thanks to Hyrum's Law, rather than being private/unpublished functions that are easy to refactor using "Find All References" and unit tests.

Re: You want microservices, but do you need them?

#105
post #102

I don't want or need microservices. What I want is for people to stop putting TCP roundtrips in between what would otherwise be simple function calls in a sane universe. I don't want to have to take a graduate-level course on the CAP theorem to clock in and work on whatever "Uber for dogs" nonsense is paying my rent. You almost certainly don't have a scaling problem that necessitates a distributed system, I guarantee…

> your OS does that Which one?

Any sane one.

Re: You want microservices, but do you need them?

#107
post #92

Earlier quoted context omitted.

> Java could do it 20+ years ago, just upload your .WAR files to an application server. Erlang could do it almost 40 years ago. It can be used to upgrade applications at runtime without stopping the service. That works well in Erlang, it’s designed from the ground up for it. I know of a few places that used that feature.

Erlang seems like a joy to use. I feel a slight pang of regret that I haven't (yet) gotten to use it in my career. (I don't quite have the time or energy to play with it during my off hours, but it is on my list for someday.)

You might give Gleam [0] a try, which is advertised as "language you can learn in a day". It is type-safe, supports the BEAM and you can easily invoke Erlang and Elixir. Compiles to Erlang or Javascript.

[0] https://gleam.run/

Re: You want microservices, but do you need them?

#109
post #107

Earlier quoted context omitted.

Erlang seems like a joy to use. I feel a slight pang of regret that I haven't (yet) gotten to use it in my career. (I don't quite have the time or energy to play with it during my off hours, but it is on my list for someday.)

You might give Gleam [0] a try, which is advertised as "language you can learn in a day". It is type-safe, supports the BEAM and you can easily invoke Erlang and Elixir. Compiles to Erlang or Javascript. [0] https://gleam.run/

This looks delightful! Thanks for the recommendation!

Re: You want microservices, but do you need them?

#110
post #92

Earlier quoted context omitted.

> Java could do it 20+ years ago, just upload your .WAR files to an application server. Erlang could do it almost 40 years ago. It can be used to upgrade applications at runtime without stopping the service. That works well in Erlang, it’s designed from the ground up for it. I know of a few places that used that feature.

Erlang seems like a joy to use. I feel a slight pang of regret that I haven't (yet) gotten to use it in my career. (I don't quite have the time or energy to play with it during my off hours, but it is on my list for someday.)

This is kind of why I've never bothered to look at it - everyone /says/ it's a wonderful thing, but... nobody uses it in production, or hobbies (apart from the diehard fans)

It might see the light of day at some point in the future, but if the past is anything to go by...

Post reply on HN