Traffic Monitoring is a vehicle monitoring system that reports road incidents in real time, both to a central system and to the vehicles and devices near the incident. The project is available as a beta version.
Scale of the Platform
- 1,000 events per second
- 3 Kafka clusters
- 10+ Kubernetes clusters
- A centralised web application serving 1,000+ mobile devices
Technologies and Tools
| Layer | What runs it |
|---|---|
| Version controlling | Bitbucket |
| Continuous deployment | Azure DevOps Pipeline |
| Containerization | Docker |
| Container management | Azure Kubernetes Service (AKS) |
| Load balancer | Azure Load Balancer |
| HTTP cache | Nginx |
| Data processing | Kafka, Elasticsearch |
CI/CD for the Web Application
The centralised web application is managed on Bitbucket under a clean Git Flow pattern. The developers' IDE is wired directly into Bitbucket and configured with Azure DevOps Pipeline to build, test and deploy to Azure Web Apps without a manual step in between. Autoscaling is handled by the Azure Web App service itself.
Automated Incident Routing
The application is built on a publish and subscribe model running on Apache Kafka. Real-time road incident data is pushed into Kafka streaming APIs, where different brokers handle different incident types, and broker topics are created dynamically from the geocode of each incident. That is what lets a report reach the vehicles near it rather than everyone at once.

