🤔 Understanding the Role of GraphQL and RTK Query in Meshery UI

Hello everyone! :wave:

I’ve been exploring and contributing to Meshery UI for the past three weeks, and I’m excited to be part of this amazing open-source community! :rocket: As I work on migrating API calls from a custom data-fetching function to RTK Query, I couldn’t help but notice the presence of GraphQL in the project as well.

I’m curious about the reasoning behind using both GraphQL and RTK Query. From my understanding:
:white_check_mark: RTK Query is a powerful tool for managing API requests and caching, making data fetching more efficient in Redux-based applications.
:white_check_mark: GraphQL offers flexibility in querying only the needed data, reducing over-fetching and under-fetching issues compared to REST.

Given this, I’d love some insights from the community:
:one: How does GraphQL fit into the Meshery UI architecture alongside RTK Query? Are they used together, or does RTK Query primarily handle REST API calls while GraphQL serves a different purpose?
:two: Are there specific cases where GraphQL is preferred over RTK Query or vice versa?
:three: Is there an ongoing effort to unify the approach, or is maintaining both necessary for certain functionalities?

I want to make meaningful contributions and ensure that the migration to RTK Query aligns well with the project’s architecture. :hammer_and_wrench: Any insights or historical context from maintainers and experienced contributors would be greatly appreciated!

Thanks in advance for your guidance and for fostering such a welcoming community. Looking forward to learning from you all! :smiley:

Before raising this topic, I came across a previous discussion about why Meshery supports both REST and GraphQL APIs. However, since Meshery’s architecture has evolved since then, I want to ensure that our current understanding aligns with the latest developments.