Ingest, query, and broadcast real-time geospatial data
The Geospatial Data Proxy supports real-time data ingestion from WebSocket, Kafka, Redis, HTTP polling, SSH, and manual push sources with DuckDB-backed buffering, SQL queries on streaming data, and Esri StreamServer-compatible SSE delivery.
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.
- Create a stream definition with a source type such as WebSocket or manual push.
- Push sample geospatial events through the
/stream/{id}/pushendpoint. - Subscribe to the SSE feed and show events arriving in real time.
- Run a SQL query against the buffer table to demonstrate analytical access to streaming data.
- Show the same feed consumed through the Esri StreamServer-compatible endpoint.