If that's the experience then you're doing services wrong. Each service should have its own datastore and a single API. The interface between services should be a single connection.
There should be maybe one meeting where the caller defines what they need the service to return to them.
There should be maybe one meeting where the caller defines what they need the service to return to them.