Skip to content

Support streaming endpoints in WES for large responses #229

@JaeAeich

Description

@JaeAeich

Problem

Some WES responses can become extremely large depending on the workflow and implementation. For example, a GetRunLog response with many outputs can cause:

  • High payload sizes
  • Slow API responses
  • Timeouts or degraded client performance

Currently, the WES spec doesn’t provide guidance on handling large responses beyond the standard synchronous REST calls.

Proposed Solution

Introduce streaming endpoints (or equivalent mechanisms such as pagination/chunked transfer) to handle large payloads in a scalable way.

Possible approaches:

  • Add optional streaming endpoints (e.g., GET /runs/{run_id}/stream/{field}) for fields that can grow arbitrarily large (outputs, logs (I guess thats what TesLogs were meant to solve but all engines don't support TES but WES should be general enough)).
  • Define a standard response format for streaming (e.g., newline-delimited JSON, chunked JSON, or pagination).
  • Keep existing endpoints lightweight, returning only summaries or truncated versions of large fields, while streaming endpoints provide full access.

Related

See [issue #228] (discussion about output schema recommendations).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions