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

Multiple parallel requests #4

Open
troyronda opened this issue Apr 16, 2021 · 2 comments
Open

Multiple parallel requests #4

troyronda opened this issue Apr 16, 2021 · 2 comments
Labels

Comments

@troyronda
Copy link

troyronda commented Apr 16, 2021

As discussed in the EDV WG call, we would like to create and update several documents to a backing EDV from a Web Wallet while minimizing user visible latency (and server overhead). In general terms, we want to perform those operations in bulk.

The authorization scheme is ZCAPs and HTTP signatures. i.e., each HTTP call to the EDV is signed. The Web Wallet runs in the browser and leverages a KMS server to protect signing keys.

Solutions Discussed:

  • Explicit bulk API in EDV.
  • "Simulate" (see below).

The explicit Bulk API addresses the problem by reducing the number of calls (and, hence, signatures, round-trips, and overhead). The EDV server is also explicitly aware of the bulk nature of the operations (and may choose to more directly treat them as bulk to its own backend).

Without an explicit Bulk API, the mentioned strategy is:

  • Require HTTP/2 to leverage multiplexing to the EDV server (implying that the client should parallelize the HTTP calls that it knows should be done in bulk).
  • Ensure that each individual HTTP Signature can be created quickly. In the discussion, the example was to use an ephemeral ed25519 signing key in the Web Wallet running in the browser.

This non-explicit strategy also raises the topic about handling the requirement for HTTP/2 in the spec.

@dmitrizagidulin
Copy link
Contributor

Discussed on the May 27, 2021 call.

Next steps: Issue stays open (as long as the 'at risk' link mentions it, in the spec).

Question: How should the group decide, long-term, whether a batch API is necessary, or if the parallel request use case can be solved in other ways?

  • Need performance data (write performance using batch API, vs using parallel writes)
  • It may be that some implementations will want to implement a /batch API anyway

@DRK3
Copy link

DRK3 commented Jun 1, 2021

Another item to discuss eventually is the operation syntax

@DRK3 DRK3 added the at risk label Oct 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants