For most of last year, my company cut a monolith and built new products based on the principles of (micro) service architecture. All of this is great, and gives us great flexibility in maintaining the user interface logic and backend separately and reducing the number of dependencies.
BUT!
As a result of this, there is an important part of our business, as a result of which a headache is growing, namely reporting.
Since we ensure that there is no data replication (and business logic sharing) between services, each service knows its own data, and if another service really needs to keep a link for this data, they execute it through an identifier (object binding, essentially). Otherwise, it’s great, it’s not very good for communication.
Our business often has to create special reports on specific cases that occur with our customers. In the old days, you made a simple SQL query that joined several database tables and requested everything you need, but this is not possible with decoupled services. And this is the problem that the business sees.
I personally am not a fan of data replication for reporting purposes at the end, as this may have a different tendency to turn into a nightmare (which is already in our old monoliths). Thus, this problem does not really concern obsolete monoliths in comparison with modern microservices, but about general data dependencies.
You have such problems, and if so, how did you solve it?
EDIT:
We discussed just a few possible solutions inside how to solve this, but none of them are really good, and I have not received the answer that I am looking for that solves problems on a large scale.
---let-BI-people-figure-it-out - , . BI/data-warehouse , , - , . , .
, . , , , . , .
, . , , , .
RabbitMQ, BI , . , , , , . , , , .