Azure  

Case Study: How Atlantic Water Solved Their Real-Time Challenges

Context (the problem before Azure):

Atlantic Water (confidential) is one of the largest water supply providers, serving millions of households. They faced three critical problems in their IT systems:

  1. Sensor Data Overload 🚨

    • Thousands of IoT sensors (water flow, pressure, contamination detectors) sent continuous data.

    • Old system used APIs + databases, which couldn’t handle real-time ingestion.

    • Result → Delays in detecting pipe bursts or contamination.

  2. Scattered Event Notifications 📢

    • When a major incident occurred (e.g., pipe burst), multiple teams (maintenance, customer support, billing, emergency services) needed to be alerted.

    • The old system used custom APIs + polling, which was unreliable and duplicated effort.

  3. Business Workflows Not Reliable 💸

    • Monthly billing reminders & outage refunds often got lost in the system.

    • Customer complaints skyrocketed because emails/SMS were missed or sent twice.

✅ The Solution: Event-Driven Architecture with Azure

We (MCN Solutions) redesigned the architecture using Azure Event Grid, Event Hub, and Service Bus.

1️⃣ Event Hub – Real-Time Sensor Monitoring

  • All IoT devices were connected to Azure Event Hub.

  • Example: 10,000 sensors send pressure & water quality readings per second.

  • An Azure Function with EventHubTrigger reads and analyzes data in real time.

👉 Benefit: No more bottleneck. If pressure > 100 PSI, the function flags it instantly.

Problem
"Earlier, our team couldn’t process high-frequency IoT data. By using Event Hub + Azure Functions, we now process millions of events per minute in real-time."

2️⃣ Event Grid – System-Wide Notifications

  • When a pipe burst or contamination is detected, the Function publishes an event to Event Grid.

  • Event Grid fans out notifications to:

    • Emergency Service (dispatches field crew).

    • Customer Notification Service (sends SMS/email).

    • Billing Service (applies credits/refunds).

👉 Benefit: Every stakeholder is notified instantly, with no polling or tight coupling.

Now:
"We used Event Grid as a lightweight pub/sub backbone. A single contamination event now reaches emergency teams, customer service, and billing — all within seconds."

3️⃣ Service Bus – Reliable Business Workflows

  • Customer reminders, outage refunds, and tickets go into Service Bus queues.

  • Another Azure Function with ServiceBusTrigger processes them one by one (in order).

  • Dead-letter queue ensures failed messages (e.g., unreachable customer) are not lost.

👉 Benefit: Billing and reminders are now guaranteed, ordered, and reliable.

Situation:
"For critical workflows like billing reminders, we relied on Service Bus. Unlike Event Grid, it guarantees delivery, retries, and preserves ordering."

🔥 End-to-End Flow

“Let’s take a real incident: A contamination was detected in Zone-23.”

  1. Sensor → Event Hub: IoT device streams ‘contamination detected’.

  2. Function → Event Grid: Function processes it and raises an Event Grid event.

  3. Event Grid fan-out:

    • Emergency Service dispatched.

    • Customer Notification Service sends alerts.

    • Billing Service applies refund credits.

  4. Service Bus Queue: Customer reminders & refund confirmations are queued, processed, and retried if needed.

👉 Result: From detection to customer notification — under 5 seconds.