Skip to content

Scope #1

@danielballan

Description

@danielballan

Phase 1: simple endpoint

Subscribe to updates from a single dataset

/stream/single/{path}
  • Supports JSON or msgpack for envelope, as specified in Accept header or envelope-format query parameter (name is negotiable).
  • Envelope contains sequence number (starting from 1), timestamp (how far behind Redis are we...), and data.
  • Optional "look back" query parameter seq can be 0 (go back as far as you can) or N (start from a specific item). If unspecified, we send the most recent update (if it has not been evicted) and then send live updates from there.
  • Data is encoded as is, however it was uploaded to Redis. Optional data-format query parameter can request a different format. (Tiled has transcoding machinery that we can just use, so let's not put much effort into rebuilding this here. Maybe support CSV as an alternate format and leave it at that.)
  • A /close/{path} endpoint enables the writer to declare that no more data is coming. The TTL on all related items may be shorted to some smaller grace period.

Phase 2: multiplexing endpoint

/stream/multi

Invent a JSON/msgpack Websockets API for subscribe, unsubscribe, application-level back-pressure (e.g. decimation or averaging).

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