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

introduce CustomExecutionEngineV2 #346

Merged
merged 7 commits into from
Apr 26, 2023

Conversation

pvormste
Copy link

Changes in this PR are based on @buraksezer 's awesome research in this commit: 23f7686

This PR introduces interfaces for a CustomExecutionEngineV2 including execution stages.
By introducing those changes it will be possible to provide its own ExecutionEngineV2 or decorate the already implemented ExecutionEngineV2.

Changes:

  • added a benchmark test for ExecutionEngineV2.Execute to track performance impacts with this change (none so far)
  • introduced the following interfaces:
    • CustomExecutionEngineV2NormalizerStage (optional)
    • CustomExecutionEngineV2ValidatorStage (optional)
    • CustomExecutionEngineV2ResolverStage (required)
    • ExecutionEngineV2Executor
  • added a default implementation for ExecutionEngineV2Executor called CustomExecutionEngineV2Executor
  • ExecutionEngineV2 now implements all interfaces mentioned before and decorates the CustomExecutionEngineV2Executor (so it is basically a CustomExecutionEngineV2)
  • moved the internalExecutionContext to CustomExecutionEngineV2 as it is an implementation detail
  • ExecutionOptionsV2 are now decoupled from internalExecutionContext so that implementing them outside of the graphql package is now possible

@pvormste pvormste force-pushed the feat/TT-8731/custom-execution-engine-v2 branch from e79b409 to b1cd2ae Compare April 26, 2023 14:08
@sonarcloud
Copy link

sonarcloud bot commented Apr 26, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 6 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@pvormste pvormste merged commit 0d8ec19 into master Apr 26, 2023
5 checks passed
@pvormste pvormste deleted the feat/TT-8731/custom-execution-engine-v2 branch April 26, 2023 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants