News for hackers. Stuff that matters.
Re:Apply Unix Principles to Write Testable Microservices by itamarst on Friday April 12, 2019 @08:20AM (#19644118)
Microservices are an organizational pattern: "we have 500 programmers working on one application, how the hell do we do it."

Solution: break up application into independent projects, each team of developers works on one of them, have extra team that builds tooling to make everyone happy.

Using microservices with a small teams is a terrible idea, usually, because you're switching to a distributed system when you don't need to. And distributed systems are hard to get right. And you're not even following the organizational pattern, because you have one team with N microservices.

Re:Apply Unix Principles to Write Testable Microservices by 0x445442 on Friday April 12, 2019 @11:29AM (#19645680)
That organizational pattern used to be addressed by proper design, engineering and project management. IMO, allowing the hell that is Agile dictate architecture design is the tail wagging the dog.
Re:Apply Unix Principles to Write Testable Microservices by BerislavLopac on Friday April 12, 2019 @08:53AM (#19644312)
Essentially, microservices are Conway's Law in practice.
Re:Apply Unix Principles to Write Testable Microservices by module0000 on Friday April 12, 2019 @12:28PM (#19646285)
You need a (good) programmer/architect for this to work in my experience. If you don't have someone who can accurately keep the entire 500-piece workflow in his/her head, success is much harder to achieve. If you have that person though, the 500 developers will feel very focused, and you end up getting where you intend to go. That architectural role is clutch from my experience.
Re:Apply Unix Principles to Write Testable Microservices by pjmlp on Friday April 12, 2019 @09:57AM (#19644817)
And even then, those 500 programmers can be distributed across application modules, delivering libraries, no need for microservices.
Re:Apply Unix Principles to Write Testable Microservices by maxxxxx on Friday April 12, 2019 @10:35AM (#19645141)
Agreed. If you don’t have the discipline to maintain libraries and their interfaces then you won’t have the discipline to maintain micro services either. I am sure there are good use cases for micro services but using them to compensate for bad coordination won’t help.
Re:Apply Unix Principles to Write Testable Microservices by barrkel on Friday April 12, 2019 @04:02PM (#19648482)
Kind of. If you need to scale compute across multiple nodes, starting out as some kind of service abstraction over a method call will help. But most people don't need that scale.
Re:Apply Unix Principles to Write Testable Microservices by pjmlp on Friday April 12, 2019 @04:31PM (#19648684)
We already learned back in the days of SUN RPC how scaling across method calls works in practice across the network.
Re:Apply Unix Principles to Write Testable Microservices by barrkel on Sunday April 14, 2019 @04:08PM (#19661398)
By over, I meant over and above, fwiw.

I think RPC is a dreadful network programming abstraction. Anything that makes you think it has the same QoS as local calls is just a trap, stuff that works in development and fails horribly in production. Errors, latency, timeouts, retries etc are first class concerns once you bring in the network, far more so than local.

Re:Apply Unix Principles to Write Testable Microservices by ebiester on Friday April 12, 2019 @11:25AM (#19645611)
Yes, but I also think it isn't a bad idea to separate your applications. Just because each application is a monolith doesn't mean that all of your code has to be in one repository.

Can your admin system be a separate system? Can they be three separate systems because three separate groups will use them? Even if you don't immediately split them into separate repositories, it may make sense to segment them as if they were, because if successful, you will start running into problems at around 40 programmers.

Re:Apply Unix Principles to Write Testable Microservices by pjmlp on Friday April 12, 2019 @01:20PM (#19646915)
That is why libraries exist.
Re:Apply Unix Principles to Write Testable Microservices by vp8989 on Friday April 12, 2019 @10:13AM (#19644950)
Actual solution: Don't have 500 programmers.