AgTech

Modernizing a smart irrigation platform for large-scale sites

Enterprise smart-irrigation technology provider One of our developers served as Lead Designer and Solution Architect for the primary platform within a multidisciplinary team Completed
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:

  • Transitioning from legacy technology to a modern stack using sound engineering practices and design patterns.
  • Decomposing monolithic desktop applications into cloud-ready, service-oriented applications.
  • Adopting Microsoft Azure technologies for enterprise services and IoT workflows.
  • Migrating information from an ADS database to PostgreSQL.
  • Running IoT components built with .NET 6 on single-board computers such as Raspberry Pi.
  • Validating interactions with controllers and hardware when physical devices were not available in every environment.
  • Enabling real-time communication among simulators, services, and clients.
  • Replacing tightly coupled integrations across several web services with MQTT messaging.
  • Maintaining a clear and scalable Angular experience for specialized multi-site irrigation-management workflows.

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

  • Technical-design and architecture leadership for the primary smart-irrigation solution.
  • Definition of a modern architecture based on sound engineering practices and design patterns.
  • A gradual transition from legacy technology to a newer stack.
  • Redesign of monolithic desktop applications as cloud-ready, service-oriented applications.
  • Adoption and integration of Microsoft Azure and Azure IoT technologies.
  • Database migration from ADS to PostgreSQL.
  • IoT components built with .NET 6 for single-board computers, including Raspberry Pi.
  • A server/client hardware simulator implemented in .NET.
  • Real-time communication using gRPC and streaming messages.
  • Conversion of several web-service integrations to MQTT messaging with HiveMQ as the broker.
  • Architecture and implementation of an enterprise Angular experience.
  • Integration across frontend applications, REST services, cloud components, and devices installed across multiple locations.
  • Participation in technical decisions, code reviews, and collaboration across multidisciplinary teams.

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.

  • Architecture designed for growth: separated services can evolve with less coupling.
  • Cloud and edge integration: responsibilities can be distributed between Azure and controllers installed at each location.
  • Modernized data foundation: PostgreSQL provides stronger compatibility with current services and tooling.
  • Validation without total hardware dependency: the gRPC simulator supports controlled testing scenarios.
  • Decoupled IoT communication: MQTT and HiveMQ distribute events across multiple producers and consumers.
  • Improved maintainability: design patterns and separated responsibilities reduce the complexity of future changes.
  • Consistent enterprise experience: Angular presents specialized workflows for managing irrigation systems distributed across parks and large venues.

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 →