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:
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.
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.
Business Workflows Not Reliable đ¸
â
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.â
Sensor â Event Hub: IoT device streams âcontamination detectedâ.
Function â Event Grid: Function processes it and raises an Event Grid event.
Event Grid fan-out:
Emergency Service dispatched.
Customer Notification Service sends alerts.
Billing Service applies refund credits.
Service Bus Queue: Customer reminders & refund confirmations are queued, processed, and retried if needed.
đ Result: From detection to customer notification â under 5 seconds.