SmartFlow
Monitoring platform for water distribution networks that integrates data from sensors and telemetry systems, enabling anomaly detection and fault localization for utility companies.
Overview
SmartFlow is a monitoring platform for water distribution networks, developed by Future Processing in collaboration with MPWiK Wrocław. The system integrates data from sensors and telemetry networks deployed across city water infrastructure. This data is stored in client-owned databases, with which SmartFlow periodically synchronizes to maintain an up-to-date view of the network state. The processed information is used to detect anomalies such as hidden leakages, pressure irregularities, and equipment failures. When an issue is identified, its location is displayed on an interactive map, enabling field teams to quickly locate and address problems.
Technical Details
Architecture
The platform is built on NestJS backend with PostgreSQL database and Angular frontend. It uses RabbitMQ for asynchronous communication between system components.
The system aggregates data from multiple device types installed throughout the water network:
- Flow meters measuring water consumption
- Pressure sensors monitoring network stability
- Noise loggers detecting acoustic anomalies
- Water quality sensors
Data Synchronization
A key aspect of the system is its approach to data acquisition:
- Client Databases - Sensor data and telemetry information are stored in databases owned and managed by each client utility
- Synchronization - SmartFlow periodically connects to client databases to pull the latest data, rather than receiving direct sensor feeds
- Processing - Services process synchronized data, perform calculations (e.g., Minimum Night Flow for DMA zones), and update the platform’s own database
- Presentation - Angular frontend renders interactive visualizations based on processed data
My Contributions
As a backend developer working on this project, I focused on several key areas:
- API Development - Created and maintained NestJS endpoints for data synchronization and system configuration
- Database Optimization - Worked on query performance for large datasets, implementing indexing strategies for time-series data
- Service Integration - Implemented communication between internal services using RabbitMQ message patterns
- Synchronization Logic - Contributed to the periodic sync mechanism that pulls data from client databases
- Frontend Support - Contributed to Angular components for data visualization, including map-based fault display
Key Features
- Periodic data synchronization from client-owned sensor databases
- Anomaly detection algorithms identifying potential water losses
- Interactive map visualization for fault localization
- Automated reports generation from historical data
- Integration capabilities with existing utility infrastructure
Lessons Learned
Working on SmartFlow taught me how to build systems that handle data synchronization from multiple external sources reliably. I gained practical experience with periodic batch processing patterns and learned how to design integrations that respect client data ownership and autonomy. The project also showed me how to balance technical decisions with domain-specific requirements from the water industry.