The buyer problem

Static data is only half the picture

  • Sensor networks, vehicle fleets, and IoT devices produce continuous geospatial data.
  • Teams need to ingest, buffer, and query streaming data alongside archived content.
  • Existing Esri clients expect StreamServer endpoints for real-time visualization.
  • Building custom streaming infrastructure is complex and expensive to maintain.

Commercial promise

Real-time and archival from one platform

The Geospatial Data Proxy extends its delivery layer with a streaming engine that ingests live data, buffers it in DuckDB for SQL analysis, and broadcasts updates to connected clients through SSE, GeoJSON, and Esri JSON formats.

Streaming surfaces

Multiple ingestion sources and delivery formats cover the broadest range of real-time workflows.

Ingestion sources

Six input channels

WebSocket (Radio), Kafka (Tributary), HTTP polling (cronjob), Redis pub/sub (Radio), manual REST push, and SSH file-based feeds.

DuckDB buffering

/stream/{id}/query

All incoming events are buffered in DuckDB tables with JSON data and optional geometry, enabling full SQL queries against streaming data.

SSE broadcast

/stream/{id}/subscribe

Server-Sent Events deliver real-time updates to connected clients in raw JSON, GeoJSON, or Esri JSON formats.

Esri StreamServer

/stream/StreamServer/0/subscribe

Esri-compatible StreamServer endpoints allow ArcGIS clients and web apps to consume live geospatial feeds directly.

Powered by DuckDB extensions

The streaming engine leverages community extensions for event-driven data processing.

Radio

WebSocket and Redis

Two-way radio for DuckDB: receive and send events from WebSocket servers and Redis pub/sub without external orchestration.

Tributary

Apache Kafka

Consume messages from Kafka topics into DuckDB for immediate processing and write processed data back to Kafka streams.

Cronjob and HTTP Client

HTTP polling

Schedule periodic HTTP requests to pull data from REST APIs and external services into the streaming buffer.

Outbound publishing

Bidirectional flow

Publish processed events back to WebSocket, Kafka, or Redis targets with delivery tracking for downstream consumers.

Where it resonates

Use this message for

  • IoT and sensor network teams that need real-time geospatial visualization
  • Fleet tracking and logistics operations requiring live position feeds
  • Organizations using Esri clients that expect StreamServer compatibility
  • Teams that need SQL-queryable buffers for streaming data analysis
  • Operations centers combining archived and live data in a single view

Talk track

The Geospatial Data Proxy now supports real-time data ingestion alongside its archival delivery capabilities. Teams can ingest live feeds from WebSocket, Kafka, Redis, HTTP, or manual push sources, buffer them in DuckDB for SQL analysis, and broadcast updates to clients through SSE and Esri StreamServer-compatible endpoints.

Suggested demo sequence

Show the full ingest-to-visualize pipeline.

  1. Create a stream definition with a source type such as WebSocket or manual push.
  2. Push sample geospatial events through the /stream/{id}/push endpoint.
  3. Subscribe to the SSE feed and show events arriving in real time.
  4. Run a SQL query against the buffer table to demonstrate analytical access to streaming data.
  5. Show the same feed consumed through the Esri StreamServer-compatible endpoint.