Overview
Vaclav Havel Airport Prague needed precision visibility into terminal operations. Where passengers and staff move, how crowded specific areas become, and how long queues form at key points – this intelligence is valuable for operational efficiency, safety, and passenger experience.
CRA engaged WDF to build a proprietary indoor positioning platform. The result is a production-grade, high-availability system that ingests wireless signals from thousands of access points, calculates real-time device positions via trilateration, and serves operator dashboards with live location data. The platform processes millions of signal samples per hour, maintains sub-second latency, and has run without interruption at the airport since May 2023.
Rather than a one-time delivery, WDF and CRA have maintained an active engineering partnership. WDF continues to operate the system, monitor its health, respond to incidents, and implement new features – making CRA the owner of a mature, maintainable technology rather than a consumer of a black-box service.
The Business Challenge
Indoor WiFi-based positioning is technically and operationally harder than it first appears.
A constant flood of wireless signals arrives from the airport's thousands of devices and access points. Every signal carries information about the sender's location, but only if the system can parse it, group it with related signals, and apply sophisticated algorithms to triangulate position – all in near-real-time. Scale matters: an error or delay at any layer compounds into missing or stale data for operators.
Beyond raw processing, the airport demanded reliability. A positioning system is operational infrastructure: failures impact decision-making and safety. The platform had to include redundancy, failover logic, automated recovery, and 24/7 observability. Operators also needed simple, intuitive dashboards – not an engineering tool.
Finally, CRA wanted to own the technology. Third-party RTLS vendors lock customers into proprietary formats, restrict customization, and shift costs upward over time. WDF's challenge was to deliver a system that CRA could eventually operate independently, while remaining available for evolution and support.
Our Role
WDF took end-to-end responsibility: designing the architecture, implementing each component, deploying to production, operating the system, and evolving it based on real-world demands.
The team designed a microservices architecture optimized for stream processing. Wireless signals flow into an RTLS receiver that parses the raw protocol, forwards data to Kafka (distributed message broker), which distributes work to a data processor that groups signals by time window and device MAC address, then to a position calculator that performs trilateration. Results are stored in PostgreSQL and served via REST API to the frontend operator dashboard.
Each layer was built for independent scaling, debugging, and replacement. Redis caches frequent lookups. PostgreSQL partitions data by time, keeping recent data hot and archiving older data to NFS storage. Kubernetes orchestrates the entire stack, managing failures and distributing load.
The frontend is a React application with Leaflet maps – giving operators an intuitive view of real-time positions overlaid on airport layouts.




