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

table.* APIs only support AppSync's contract #132

Closed
thantos opened this issue May 15, 2022 · 0 comments · Fixed by #287
Closed

table.* APIs only support AppSync's contract #132

thantos opened this issue May 15, 2022 · 0 comments · Fixed by #287
Assignees
Projects

Comments

@thantos
Copy link
Collaborator

thantos commented May 15, 2022

There are two sets of dynamo integrations (where * are all of the dynamo query and mutate APIs):

  1. table.*
  2. $AWS.DynamoDB.*

Currently table.* uses a contract specific to AppSync:

table.query returns { items: [...], nextToken: "", scanCount: number }

But nextToken is a concept that appsync made up, it isn't something we easily recreate in functionless.

  • Could recreate by encrypting and encoding the token, but this assumes that appsync is the only integration that has a unique contract and that all other services must follow them
  • Could use the dynamo contract, but app sync cannot do that as the LastEvaluatedKey is obfuscated in the next token and not returned.

Options:

  1. All integrations with dynamo tables conform to appsync's contract table.query
  2. Breaking change that creates a set of table APIs for only app sync, leaving table.* for services that use dynamo's contract (ex: step functions, lambda)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Release
To do
3 participants