Background
Some of our users are saying that working with Atum Service's REST API layer (those who cannot or don't want to use Atum Reader) is a bit complicated for measurement retrieval.
Mmaybe GraphQL could be used on Atum Service for convenience. The REST API of the Atum service is not simple and the requests might 'underfetch' or 'overfetch' a lot. And there can be multiple queries needed to obtain a desired result.
Questions To Answer
- Come up with few common usecases that could be done better in GraphQL. Maybe something like 'get me last 5 [input] checkpoints related to specific partitioning Additional Data [input]. Sure, we can build rest API and DB functions for everything, but that's maybe much more costly
- We have Postgres, DB functions, Scala & Scala DTO models, and REST API - how, if so, can GraphQL be used? Any OSS libraries to use?
- How could the implementation look like - what needs to be done, how much effort it would take, what about security model (think about the current DB function level also)?
Business Value
Adoption of Atum is much higher, thus its value is higher - we are capturing control metrics, but not acting on them (this is fine, never was in Atum's scope). But in the end of the day, we don't want to gather data for the sake of gathering, someone or something needs to consume and build DQ related stuff with it. So the convenience of metric consumption is important. If it's 'system' written in Scala, then this can just use Reader. Outside of that, users might struggle.
Desired Outcome
The list of desired outcomes of this spike ticket.
Tasks
Additional Info/Resources
- https://www.moesif.com/blog/graphql/technical/Ways-To-Add-GraphQL-To-Your-Postgres-Database-Comparing-Hasura-Prisma-and-Others/
- https://github.com/sangria-graphql/sangria
- https://www.howtographql.com/graphql-scala/0-introduction/
Background
Some of our users are saying that working with Atum Service's REST API layer (those who cannot or don't want to use Atum Reader) is a bit complicated for measurement retrieval.
Mmaybe GraphQL could be used on Atum Service for convenience. The REST API of the Atum service is not simple and the requests might 'underfetch' or 'overfetch' a lot. And there can be multiple queries needed to obtain a desired result.
Questions To Answer
Business Value
Adoption of Atum is much higher, thus its value is higher - we are capturing control metrics, but not acting on them (this is fine, never was in Atum's scope). But in the end of the day, we don't want to gather data for the sake of gathering, someone or something needs to consume and build DQ related stuff with it. So the convenience of metric consumption is important. If it's 'system' written in Scala, then this can just use Reader. Outside of that, users might struggle.
Desired Outcome
The list of desired outcomes of this spike ticket.
Tasks
Additional Info/Resources