Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interface for client backend #1128

Closed
3 tasks
bvrooman opened this issue Apr 12, 2023 · 1 comment
Closed
3 tasks

Interface for client backend #1128

bvrooman opened this issue Apr 12, 2023 · 1 comment
Labels
graphql-api Affects API of the GraphQL

Comments

@bvrooman
Copy link
Contributor

bvrooman commented Apr 12, 2023

The Client must be configurable to interface with any backend. The Client communicates with the backends using a backend client. To maximize modularity, we want to introduce an interface (a Rust trait or traits) that define the possible operations (queries, mutations, subscriptions) that the backend supports.

Backend clients will implement this interface, and the Client can choose whichever backend client it desires to use at compile time:

  • GraphQL
  • gRPC
  • Directly embedded FuelService

Blocked by:

Acceptance Criteria:

  • The trait(s) for client backends is defined
  • All instances of the concrete GraphQL client are replaced with a polymorphic trait object
@bvrooman bvrooman changed the title Interface for client backend Interface for Client Backend Apr 13, 2023
@bvrooman bvrooman changed the title Interface for Client Backend Interface for client backend Apr 13, 2023
@bvrooman bvrooman added the graphql-api Affects API of the GraphQL label May 30, 2024
@xgreenx
Copy link
Collaborator

xgreenx commented Sep 26, 2024

All requirements to the database in GraphQL service already use Rust traits, so it is done

@xgreenx xgreenx closed this as completed Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
graphql-api Affects API of the GraphQL
Projects
None yet
Development

No branches or pull requests

2 participants