5 ms·
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 microservic
by cestith 8y ago
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.
- ec109685 8y agoDoesn’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?
- cestith 8y agoThey were already breaking things into separate services. They violated DRY by putting the same or similar code into all of them. Then instead of cleaning up the DRY violations by refactoring into a shared service or refactoring into a shared library as a static asset, they factored it out into a mushy shared library still in lots of flux. Whether they were wanting to factor into another service with a defined and mostly static API or a common library with a defined and mostly static API, it was a failure to factor common code into an amorphous blob that gates the release of all the other services. Instead, they've de-modularized the code and called that a success. If you're drawing hard lines between services and having them talk to one another, having one of these models for at least parts of that makes a lot of sense: * filter system of the flow-based nature * REST API that does a transformation and returns transformed data * message broker with producer/consumer model where the consumer of one queue does a transform and puts the data into another queue * a full actor model * a full flow-based model