Skip to content

Asynchronous APIs #392

Open
Open
@smklein

Description

@smklein

Note: async is overloaded. Usage here refers to an "asynchronous endpoint", as described in RFD 4, not the async Rust keyword.

As discussed in #385 (comment) , Omicron is growing a reasonably sized API surface. As @davepacheco mentioned, "most things that use sagas... probably ought to be async".

At the time of writing this bug, none of our endpoints are async. We would benefit from:

  • Identifying long-running operations, and defining a set which are good candidates to be async (at minimum, "create instance" seems like a good candidate).
  • Prototype a couple endpoints as async, returning an ID, and providing a wait-for-completion API.
  • Iterate on ergonomics, providing utilities (or possibly changes to Dropshot) making these operations as easy to write as possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiRelated to the API.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions