Skip to content

Releases: krutikavk/sparseupdate-poc

Dynamic Proxy: Final Design

Pre-release

Choose a tag to compare

@krutikavk krutikavk released this 20 Nov 00:16
678f474

dynamic-proxy-separated-classes

Choose a tag to compare

Dynamic proxy implementation separating classes that are generated by codegen and the classes that need to be generated.

Dynamic Proxy Updated Design

Choose a tag to compare

@krutikavk krutikavk released this 30 Oct 22:19

Dynamic Proxy design: POC

Choose a tag to compare

@krutikavk krutikavk released this 02 Oct 16:36

Sparse Update POC: Graphql-java interception

Choose a tag to compare

Description

Sparse Update POC with : Graphql-java interception
This implementation overrides instrumentation for graphql-java to add raw variables from mutation input to graphql context.

Please use git checkout graphql-java-interception to try this out.

Mutation:

query getShow {
  show(id:"one") {
    title
    releaseYear
  }
}

//output
{
  "data": {
    "show": {
      "title": "Show One",
      "releaseYear": 2023
    }
  }
}
mutation updateShow($input: UpdateShowInput!) {
  updateShow(input: $input) {
    id
    title
    releaseYear
  }
}

// Variables
{
  "input": {
    "id": "one",
    "title": "New Show"
  }
}

// output
{
  "data": {
    "updateShow": {
      "id": "one",
      "title": "New Show",
      "releaseYear": 2023
    }
  }
}

Title is updated to "New Show" without affecting the value of "releaseYear" even though it is not supplied by the client in input variables.

Implementation used:

  1. Adding raw variables to dfe context through customized graphql-java instrumentation for beginExecution
  2. Presence (boolean) fields for title and releaseYear

Sparse Update with Boolean Fields

Choose a tag to compare

@krutikavk krutikavk released this 10 Apr 16:11

Implementation of sparse update with Boolean Fields