I was wondering - too many microservices usually cause testing and devops overheads + it makes the system more complex.
My service is something that handles a large load (from a data stream). It needs some database data from time to time.
There will be also a seperated process that needs to keep feeding the database with data from external source.
I initially thought of 3 services:
- The service that manipulates and handles the data
- Service that feeds the database
- REST API service that will be used also as internal but also as external (eventually for UI), and internally for requests from the services.
I have several cases i'm considering:
- I've read that a CRUD service is an anti-pattern - so i'm not sure about #3.
- The first manipulation service needs a special scale algorithm, and the REST API that will be used externally also, requires totally different scale (much lower)
- Service #1 and #2 actually share the database (or use the REST API) (though they are in the same domain) - it sounds like it's an anti pattern.
My main question is - Should i combine some of the services above? having mentioned that scale requirements are different.