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

chore: deprecate and remove support for the async graphQL engine #3128

Open
laststylebender14 opened this issue Nov 20, 2024 · 15 comments · Fixed by #3223
Open

chore: deprecate and remove support for the async graphQL engine #3128

laststylebender14 opened this issue Nov 20, 2024 · 15 comments · Fixed by #3223
Assignees

Comments

@laststylebender14
Copy link
Contributor

Currently, Tailcall supports two execution engines:

  1. Async GraphQL Engine: Works out of the box and can be enabled using enableJIT: false.
  2. JIT Engine (default): A faster alternative to the Async GraphQL Engine.

We plan to remove support for the Async GraphQL Engine, focusing solely on the JIT Engine for performance and maintainability.

Tasks:

  • Identify all occurrences of the Async GraphQL Engine code in the codebase.
  • Remove code related to the Async GraphQL Engine.
  • Update documentation to reflect the removal.
  • Ensure backward compatibility where necessary (e.g., handle enableJIT: false gracefully).
@laststylebender14 laststylebender14 changed the title feat: deprecate and remove support for the async graphQL engine chore: deprecate and remove support for the async graphQL engine Nov 20, 2024
@tusharmath
Copy link
Contributor

/bounty $50

Copy link

algora-pbc bot commented Nov 20, 2024

💎 $50 bounty • Tailcall Inc.

Steps to solve:

  1. Start working: Comment /attempt #3128 with your implementation plan
  2. Submit work: Create a pull request including /claim #3128 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

🙏 Thank you for contributing to tailcallhq/tailcall!
🧐 Checkout our guidelines before you get started.
💵 More about our bounty program.

Attempt Started (GMT+0) Solution
🔴 @dekkku Nov 20, 2024, 7:33:08 PM WIP
🔴 @imperivox Nov 21, 2024, 5:24:38 PM WIP
🔴 @mehul-m-prajapati Dec 10, 2024, 7:37:20 AM WIP

@dekkku
Copy link
Contributor

dekkku commented Nov 20, 2024

/attempt #3128

Algora profile Completed bounties Tech Active attempts Options
@dekkku 8 tailcallhq bounties
Rust, TypeScript
Cancel attempt

Copy link

algora-pbc bot commented Nov 21, 2024

Note

The user @dekkku is already attempting to complete issue #3128 and claim the bounty. We recommend checking in on @dekkku's progress, and potentially collaborating, before starting a new solution.

@ologbonowiwi
Copy link
Contributor

@laststylebender14 @tusharmath, what should be done about parts which depend on async_graphql but are not related to request processing?

A few examples:

  • pub cache: DedupeResult<IoId, ConstValue, Error>,
    pub dedupe_handler: Arc<DedupeResult<IoId, ConstValue, Error>>,
  • fn from_directive(directive: &ConstDirective) -> Valid<Self, String>;
    fn to_directive(&self) -> ConstDirective;
    fn trace_name() -> String {
    format!("@{}", Self::directive_name())
    }
    fn from_directives<'a>(
    directives: impl Iterator<Item = &'a Positioned<ConstDirective>>,
    ) -> Valid<Option<Self>, String> {
    for directive in directives {
    if directive.node.name.node == Self::directive_name() {
    return Self::from_directive(&directive.node).map(Some);
    }
    }
    Valid::succeed(None)
    }
  • Cow::Owned(async_graphql::Value::String(s)) => Some(Cow::Owned(s)),
    Cow::Owned(async_graphql::Value::Number(n)) => Some(Cow::Owned(n.to_string())),
    Cow::Owned(async_graphql::Value::Boolean(b)) => Some(Cow::Owned(b.to_string())),
    Cow::Owned(async_graphql::Value::Object(map)) => Some(json!(map).to_string().into()),
    Cow::Owned(async_graphql::Value::List(list)) => Some(json!(list).to_string().into()),
    Cow::Borrowed(async_graphql::Value::String(s)) => Some(Cow::Borrowed(s.as_str())),
    Cow::Borrowed(async_graphql::Value::Number(n)) => Some(Cow::Owned(n.to_string())),
    Cow::Borrowed(async_graphql::Value::Boolean(b)) => Some(Cow::Owned(b.to_string())),
    Cow::Borrowed(async_graphql::Value::Object(map)) => Some(json!(map).to_string().into()),
    Cow::Borrowed(async_graphql::Value::List(list)) => Some(json!(list).to_string().into()),
    Cow::Borrowed(async_graphql::Value::Enum(n)) => Some(Cow::Borrowed(n)),

Copy link

algora-pbc bot commented Nov 21, 2024

@dekkku: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

@tusharmath
Copy link
Contributor

Remove them if they aren't being used.

@ologbonowiwi
Copy link
Contributor

I think they're being used. Should be kept?

@tusharmath
Copy link
Contributor

Delete if there is an option to delete, otherwise there is no real option.

@laststylebender14
Copy link
Contributor Author

@ologbonowiwi we still use some models from async graphql, like ConstValue etc. so try to clean up as much as possible.

Copy link

algora-pbc bot commented Nov 22, 2024

@imperivox: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

Copy link

algora-pbc bot commented Nov 23, 2024

The bounty is up for grabs! Everyone is welcome to /attempt #3128 🙌

@mehul-m-prajapati
Copy link

mehul-m-prajapati commented Dec 10, 2024

/attempt #3128

Algora profile Completed bounties Tech Active attempts Options
@mehul-m-prajapati 1 tailcallhq bounty
TypeScript, JavaScript,
HTML & more
Cancel attempt

Copy link

algora-pbc bot commented Dec 11, 2024

@mehul-m-prajapati: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

Copy link

algora-pbc bot commented Dec 12, 2024

The bounty is up for grabs! Everyone is welcome to /attempt #3128 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants