You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today, users are restricted to programming their wrapper's logic into 2 different Wasm modules: query.wasm and mutation.wasm This is because in the schema interface layer, we are abiding by standard GraphQL best practices, and exposing all executable methods via the Query and Mutation types.
Based on prior considerations, we are moving farther away from GraphQL (more information here), so it only makes sense to also allow developers to name their own custom modules.
And not only that, because of this GraphQL notion, we've been assuming wrappers to contain multiple modules by default; when this is not the regular case with regular libraries and SDKs. Working with an arbitrary number of named modules inside of a wrapper, comes with a non-trivial increase in complexity and capability, just like working with a monorepo.
Therefore, we should assume single-module wrappers as the default case. We would develop additional, multiple module specific, infrastructure in the future
Planning
After a conversation with @dOrgJelli and later with @cbrzn, we agreed on removing the concept of modules in the current implementation altogether; and in the future, if needed, re-add it with a different implementation and mindset completely.
This would not only simplify the complexity around the core parts of the toolchain, but also simplify the development, usage and invocation of wrappers in general.
A safe way of implementing the necessary changes in parallel without much conflict would be separating the changes related to the schema pipeline, from the rest of the core infrastructure's changes. Hence, the necessary subtasks are:
Description
Previously #835
Today, users are restricted to programming their wrapper's logic into 2 different Wasm modules:
query.wasm
andmutation.wasm
This is because in the schema interface layer, we are abiding by standard GraphQL best practices, and exposing all executable methods via theQuery
andMutation
types.Based on prior considerations, we are moving farther away from GraphQL (more information here), so it only makes sense to also allow developers to name their own custom modules.
And not only that, because of this GraphQL notion, we've been assuming wrappers to contain multiple modules by default; when this is not the regular case with regular libraries and SDKs. Working with an arbitrary number of named modules inside of a wrapper, comes with a non-trivial increase in complexity and capability, just like working with a monorepo.
Therefore, we should assume single-module wrappers as the default case. We would develop additional, multiple module specific, infrastructure in the future
Planning
After a conversation with @dOrgJelli and later with @cbrzn, we agreed on removing the concept of modules in the current implementation altogether; and in the future, if needed, re-add it with a different implementation and mindset completely.
This would not only simplify the complexity around the core parts of the toolchain, but also simplify the development, usage and invocation of wrappers in general.
A summary of the conversation can be found here
Implementation Plan
A safe way of implementing the necessary changes in parallel without much conflict would be separating the changes related to the schema pipeline, from the rest of the core infrastructure's changes. Hence, the necessary subtasks are:
The text was updated successfully, but these errors were encountered: