3 ms·
They 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 th
by cestith 8y ago
They 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