Skip to content
New issue

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

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

Already on GitHub? # to your account

I want to develop single-module wrappers by default, and not be constrained/guided by "Query" or "Mutation" notions #886

Closed
5 tasks done
namesty opened this issue Jun 1, 2022 · 1 comment
Assignees
Milestone

Comments

@namesty
Copy link
Collaborator

namesty commented Jun 1, 2022

Description

Previously #835

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 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:

@cbrzn
Copy link
Contributor

cbrzn commented Jun 6, 2022

Note that templates packages need to be updated too - Is it worth creating a subtask for this?

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

No branches or pull requests

3 participants