I've built a few projects that provide real-time reporting across sass applications but it always seems like an uphill battle. Especially when your only interface with the sass is a hypertext API.
Can a data source change while you're completing a multi-part query?
Are records hard deleted? If so how do you detect removed records to maintain deltas?
How do you maintain deltas throughout lossy pipelines that group or filter?
In the end, it always feels like it'd be easier to build one monolith to replace all the systems and report on that instead...
Rest is a constant struggle between complexity, functionality and authorisation.
The more flexible a REST API becomes, the more it becomes like GraphQL minus the standardisation.
I wrote a blog [1] on writing GraphQL API's in TypeScript. It focuses particularly on authorisation and relations.
[1] https://dev.to/nickkelly314/writing-a-graphql-typescript-ser...