DBRaven

Geospatial Tracking Platform

Realtime Collaborationhigh complexity

Deterministic topology derived from YAML knowledge entities. Nodes represent workloads, datastores, patterns, and risk components. Edges show typed relationships with propagation direction.

18

Components

0

Connections

5

Failure Modes

1

Propagation Paths

Max exposure: high· 1 high-risk node in this topology
Topology Graph18 nodes · 0 edges
1 high-risk nodeClick a failure mode below to trace propagation
Workload
Datastore
Cache
Event stream
Pattern
Risk node
Risk path

Failure Propagation Trace

Topology Notes

  • ·The location ingestion write path has two parallel destinations: Redis GEOADD for the live position surface (synchronous, part of the API response path) and Kafka location_updates topic for downstream consumers (outbox-based, not in the API response path). The API acknowledges the location update after Redis write; Kafka publication is async via the outbox relay.
  • ·Redis geospatial index is keyed by fleet_id (or region_id) with entity_id as the ZSET member. GEOSEARCH queries by (center_lat, center_lon, radius_meters) with BYRADIUS and WITHDIST return entity IDs within range in O(N+log M) where N is the result count and M is the total member count. For proximity-critical dispatch queries, this must complete in < 10ms, which requires that the active entity count per ZSET stays below ~500,000 for typical hardware.
  • ·TimescaleDB stores the full location history as a hypertable partitioned by received_at (1-hour chunks) and optionally by entity_id hash bucket for high-cardinality fleets. Continuous aggregates compute 1-minute and 15-minute rollups for route analytics and SLA dashboards. Chunk-level compression is applied to chunks older than 7 days, reducing storage to approximately 10% of uncompressed volume.
  • ·Kafka location_updates topic carries raw position events consumed by: the geofence evaluation service, the customer-facing ETA service, the analytics pipeline, and the historical storage consumer writing to TimescaleDB. Topic partitioning must use entity_id (or a uniformly distributed hash thereof) as the partition key to ensure all updates for the same entity are processed in order by each consumer.
  • ·Geofence definitions are loaded into the evaluation service at startup and reloaded on a configuration change event published to a geofence_config Kafka topic. The evaluation service maintains an in-memory R-tree spatial index of active geofences. Reload must be atomic: the service must not partially apply a new geofence configuration.
Topology: Geospatial Tracking Platform: DBRaven