Anomaly Engine: Spotting AIS Rendezvous Events Live
An in-house research product that tracks live AIS vessel data with geohash-cell clustering and a graph database, and flags unexpected proximity and rendezvous events.
Problem
Maritime AIS feeds publish a constant stream of vessel position updates. Spotting a meaningful event in that stream, two vessels meeting at sea when neither is at a port, is a search problem, not a dashboard problem. We tested whether we could detect this kind of rendezvous and proximity anomaly in near real time as our own research effort, not a client engagement.
The hard part was scale. Comparing every vessel against every other vessel on each update does not stay fast as the fleet grows.
Solution
We built the ingestion and processing pipeline on Java 21 and Spring WebFlux, streaming live AIS updates through Kafka. Vessel positions are bucketed into geohash cells, so proximity checks run only against nearby vessels instead of the full fleet. A Neo4j graph stores vessel relationships, so a rendezvous pattern can be traced across multiple encounters instead of a single snapshot.
- Kafka-based streaming ingestion of live AIS data
- Geohash-cell clustering that bounds proximity comparisons
- Neo4j graph model tracing multi-vessel encounter patterns
- Reactive processing pipeline on Spring WebFlux
Result
The engine processes live AIS streams and flags proximity and rendezvous events between vessels as they happen. The geohash-cell approach keeps comparisons bounded as vessel volume grows. It runs as an internal research product, not tied to a client engagement.
Gallery
Project Details
- Client
- Koddata R&D
- Location
- Denizli, Türkiye
- Technologies
- Java 21, Spring WebFlux, Kafka, Neo4j, Docker
- Completed
- 04/2026
- Category
- Data & AI