Modernizing a smart irrigation platform for large-scale sites

A company specializing in irrigation-control systems for parks, stadiums, amusement parks, and other large-scale sites needed to evolve its primary solution from monolithic desktop applications and legacy services into a modern architecture connecting web experiences, cloud services, and hardware installed at each location.

One of our developers worked within the client’s team as the Lead Designer and Solution Architect for the primary platform. The contribution covered architecture, legacy modernization, frontend and backend development, data migration, Azure integration, and real-time IoT communications.

The implemented scope focused on irrigation management for landscaped environments and large facilities. The platform connected operators with controllers, devices, and distributed services across multiple locations.

Case overview

Area Description
Industry Smart irrigation for parks, stadiums, amusement parks, and other large landscaped sites
Product type Enterprise platform connected to irrigation controllers and hardware installed across multiple locations
Contribution Technical-design leadership, solution architecture, and full-stack, cloud, and IoT implementation
Modernization Monolithic applications and legacy services into cloud-ready, service-oriented applications
Data Migration from a legacy ADS database to PostgreSQL
Communications REST, streaming gRPC, and MQTT messaging through HiveMQ
Edge and IoT .NET 6 on single-board computers, including Raspberry Pi, integrated with Azure IoT technologies
Priorities Gradual migration, maintainability, interoperability, scalability, and real-time communication

The challenge

The platform could not be modernized by treating the frontend, services, database, cloud environment, and hardware as independent initiatives. Each layer depended on the others while coexisting with technology already supporting irrigation operations across large sites.

The primary challenges included:

Our approach

Technical leadership and target architecture

The work began by analyzing the dependencies, responsibilities, and integration points of the primary solution. One of our developers helped define the target architecture, service boundaries, and patterns required to modernize the platform progressively rather than depend on a high-risk, all-at-once replacement.

The architecture separated responsibilities, reduced coupling, and allowed web applications, cloud services, and devices installed at each location to evolve with greater independence.

From monolithic applications to cloud services

Several monolithic desktop applications were redesigned as service-oriented applications. This transition moved specific responsibilities into independent components, established clearer contracts, and prepared the platform to operate with Azure technologies.

The objective was not merely to change languages or infrastructure. It was to improve how the system was organized, deployed, and connected.

ADS-to-PostgreSQL data migration

The data-modernization effort included transitioning from a legacy ADS database to PostgreSQL. The work had to account for existing structures, compatibility with the new services, and a migration strategy that reduced risk as the platform evolved.

PostgreSQL provided a modern, broadly supported data foundation for the restructured services and future cloud workflows.

IoT and edge computing with .NET 6

IoT components were developed with .NET 6 and deployed to single-board computers, including Raspberry Pi. These components formed part of the connection between irrigation controllers installed on-site and the platform’s services.

The solution also moved toward Azure IoT technologies, connecting local processing with cloud capabilities while keeping responsibilities clear across edge devices, services, and client applications.

Hardware simulator with gRPC streaming

To support development and validation without requiring constant access to physical hardware, a server/client system for simulating devices and controllers was implemented in .NET.

Communication used gRPC and streaming messages, enabling continuous, low-latency exchanges that represented hardware behavior in real time. The simulator made it possible to test integrations, states, and platform responses in controlled environments.

MQTT messaging through HiveMQ

Several web-service integrations were restructured around MQTT messaging, using HiveMQ as the broker. The change reduced direct dependencies between producers and consumers and enabled device and service events to be handled asynchronously.

This model was better suited to a distributed IoT platform in which controllers, services, and applications need to publish and consume information without maintaining a rigid point-to-point connection between every system.

Evolution of the Angular experience

The Angular experience, initially designed around mobility, continued evolving into a broader enterprise interface. Angular, TypeScript, and SCSS were used to create reusable components, consistent patterns, clear state handling, and REST-service integration for presenting irrigation operations through usable workflows.

The frontend architecture was aligned with the backend modernization so that the web experience would not become a new monolithic layer.

What we delivered

Technology stack

Area Technologies and practices
Web experience Angular, TypeScript, HTML5, SCSS, and responsive design
Services .NET 6, REST APIs, and service-oriented applications
Cloud and IoT Microsoft Azure, Azure IoT, and edge computing
Hardware Single-board computers, Raspberry Pi, and site-installed irrigation controllers
Data PostgreSQL, legacy ADS database, and data migration
Real-time communication gRPC and streaming messages
Messaging MQTT and HiveMQ Broker
Engineering Design patterns, separation of concerns, Git, code review, and iterative delivery

Product value

The modernization established a more flexible foundation for a hardware-connected irrigation solution to continue evolving without depending on a single monolithic application.

No percentage improvements or performance metrics are published because no approved measurements are available for disclosure.

Why this story matters

Modernizing a hardware-connected irrigation platform operating across parks, stadiums, amusement parks, and other large-scale sites is more complex than migrating an interface or upgrading a framework version. It requires coordination across client applications, services, databases, messaging, cloud infrastructure, controllers, and deployment processes while existing operations continue.

This story demonstrates our team’s ability to contribute architectural leadership across multiple layers—from Angular and .NET to PostgreSQL, Azure IoT, Raspberry Pi, gRPC, and MQTT.

To protect confidentiality, product names, internal diagrams, device models, and client operational details are not included.

Do you need to modernize an irrigation platform or hardware-connected software?

We can help define a transition architecture, separate monolithic applications, migrate data, connect IoT devices, and build cloud services without requiring a complete rewrite on day one.

Talk to VesperaMX →