Farsight Feeds

Tiles & Streaming (Planned)

Vector tiles, live delta streams, and history/replay.

Status: planned

The endpoints on this page are advertised in the OpenAPI contract but return 404 on the currently deployed system. They are in flight and not yet in the deployed image. Use the live equivalents in the meantime: whole-collection GET /layers/{key}, polling against the alerts API, and the gRPC StreamLayer RPC where Rust→Rust IPC is available.

Vector tiles

MethodPathPurpose
GET/tiles/{layer}/{z}/{x}/{y}.mvtMapbox Vector Tile for a layer.

In-process MVT encoded from the pod's rstar R-tree over hot cache state — no DB round-trip per tile. Per-tile ETag + Cache-Control for Envoy/CDN caching; deltas invalidate only the tiles they touch. With ?at=<epoch_ms> the tile is rendered from recorded history instead of live state.

Designed to replace whole-collection GET /layers/{key} fetches for high-density layers (ais, adsb, powerTransmission, usSubstations, webcams) once the deployed image carries it.

Streaming

MethodPathPurpose
GET/stream/{layer}Server-Sent Events stream of Delta JSON for a layer.
GET/ws/{layer}WebSocket of CBOR/JSON Delta frames for a layer.

Both consume the Zenoh spine — every delta the ingestor publishes is fanned out to subscribers without polling. Frame shape follows the Delta schema in the OpenAPI components.

The gRPC FeedAdapter.StreamLayer RPC is the only streaming surface that is live today — it emits a full snapshot every 60 s or on change.

History & replay

MethodPathPurpose
GET/layers/{key}/historyDecimated historical slices for a layer.
GET/entities/{layer}/{id}/trackOne entity's recorded track.
GET/replay/{key}Replay session descriptor for a layer.

These endpoints are backed by recorded history. Until they land, the live /alerts?since=… window and the in-process AIS/ADS-B track buffer are the only history surfaces available.

What works today

NeedUse instead
One frame of a layerGET /layers/{key} (full FeatureCollection).
Live updatesPoll /layers/{key} or /alerts?since=…; use gRPC StreamLayer for Rust IPC.
Recent vessel/aircraft trackThe track is embedded in feature properties on /layers/ais and /layers/adsb.
Historical queryNot available externally yet.

See the OpenAPI Scalar reference — the planned endpoints carry a 🚧 status banner so consumers don't mistake them for live.

On this page