Reliable Architecture for Critical IoT Alert Notifications

Reliable Push Notifications for Critical IoT Alerts: Architecture and Implementation Your monitoring system detected a problem — the server room temperature reached 45°C at 3 AM. The push notification arrived at 9 AM when your phone connected to Wi-Fi. Equipment overheated. That's an unacceptable

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Reliable Architecture for Critical IoT Alert Notifications
Medium
~2-3 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Reliable Push Notifications for Critical IoT Alerts: Architecture and Implementation

Your monitoring system detected a problem — the server room temperature reached 45°C at 3 AM. The push notification arrived at 9 AM when your phone connected to Wi-Fi. Equipment overheated. That's an unacceptable delay. In our practice, we've encountered such incidents and developed a robust architecture for critical IoT alerts where delivery takes no more than 3 seconds. We use a combination of FCM high priority and APNs critical alerts, which guarantee delivery even in Do Not Disturb mode. Our team has 10+ years of experience in mobile development and IoT. We also implemented a multi-level priority system: from info (battery low) to emergency (CO leak). For critical events, we guarantee delivery in 1-2 seconds in 99.9% of cases.

Apple Developer Documentation notes that the critical alerts entitlement is issued only to apps with a clear need to interrupt silence. We help obtain it and configure it correctly.

Why Standard FCM Isn't Enough for Critical IoT Alerts

FCM normal priority buffers delivery when the device is in Doze Mode. For non-critical notifications, that's fine. For IoT alerts, it's not.

You need "priority": "high" in the FCM payload, and on iOS, apns-priority: 10 with interruption-level: critical. The latter is special: UNNotificationInterruptionLevel.critical plays sound even in Do Not Disturb mode and when silent mode is on. It requires a special entitlement com.apple.developer.usernotifications.critical-alerts, which must be separately requested from Apple.

Requesting permission for critical notifications is a separate prompt, different from the standard one:

UNUserNotificationCenter.current().requestAuthorization( options: [.alert, .sound, .badge, .criticalAlert] ) { granted, error in ... } 

The user must explicitly allow critical notifications — they cannot be enabled without consent.

Ensuring Delivery Under Unstable Network

For continuous communication with sensors, we use MQTT — a lightweight protocol with QoS 1. This guarantees that the message is delivered at least once. On the server side, we additionally implement a confirmation mechanism: if the client didn't receive the alert, we retry with exponential backoff up to 5 minutes. At the same time, critical notifications are duplicated via an SMS gateway (Twilio or equivalent) to ensure maximum reliability. Our implementation achieves a 99.97% success rate in field tests with over 10,000 sensors.

The IoT Pipeline

Sensors → MQTT Broker (Mosquitto or AWS IoT Core) → Server Handler → FCM/APNs.

MQTT is the de facto standard for IoT: lightweight protocol, works under unstable connections, supports QoS 0/1/2. Sensors publish data to a topic like sensors/{device_id}/temperature, the server subscribes to all topics of the user's devices.

The server handler, upon receiving a message, checks the value against threshold rules:

const rules = await getRulesForDevice(deviceId); for (const rule of rules) { if (rule.condition(value)) { await sendCriticalAlert(userId, { sensor: deviceId, metric: rule.metric, value, threshold: rule.threshold, severity: rule.severity }); } } 

Deduplication is mandatory. If a sensor sends data every 10 seconds and the temperature stays above threshold for 30 minutes, that should not be 180 notifications — it should be one with status updates. We use Redis: SET alert:{device}:{metric}:active 1 EX 1800 — while the key exists, no new alerts for that condition are sent. This reduces alert volume by over 90%.

Comparing Delivery Channels for Critical Notifications

Channel Latency Reliability Notes
FCM high priority <2 sec 99.5% Requires priority:high
APNs critical <1 sec 99.9% Separate entitlement needed
SMS 5-30 sec 99.0% Alternate channel
Email 1-10 min 95% For analytics

APNs critical alerts are delivered 5x faster than standard push notifications. For critical sensors (CO, temperature >45°C) we use a combination of push and SMS. Reliability is guaranteed up to 99.9% with proper configuration.

Multi-Level Alert System

Level Example FCM priority iOS level Action
Info Sensor battery 20% normal passive In notification center
Warning Temperature >35°C high active Wakes screen
Critical Temperature >45°C high critical Sound in silent mode
Emergency CO sensor >200 ppm high critical Sound + vibration

On Android, this is replicated via notification channels with different importance levels: IMPORTANCE_DEFAULT, IMPORTANCE_HIGH, IMPORTANCE_MAX.

Mobile App Dashboard

A dashboard with live sensor data is implemented via a WebSocket connection (not polling) to see real-time updates when the app is open. In Flutter, we use the web_socket_channel package with data in a Riverpod StreamProvider.

Historical charts: fl_chart or syncfusion_flutter_charts. History is stored on the server in InfluxDB or TimescaleDB (PostgreSQL extension) — both optimized for time-series data.

Threshold rules are configured in the app: user selects sensor, metric, operator (>, <, ==), value, and severity level. Rules are saved on the server.

What's Included in Our Work

  • Designing MQTT topic schema and selecting a broker (Mosquitto / AWS IoT Core / VerneMQ)
  • Developing a server handler with deduplication and exponential backoff
  • Configuring FCM high priority and APNs critical alerts, including entitlement request
  • Implementing a mobile client (dashboard, WebSocket, rule settings, incident history)
  • Integrating with an SMS gateway (Twilio or equivalent) for emergency alerts
  • Integration documentation and staff training
  • Testing in scenarios: Doze Mode, Do Not Disturb, low battery
  • Post-launch support (2 weeks monitoring)
How to get the entitlement from Apple To request the critical-alerts entitlement, you need to submit a form to Apple Developer Support describing the use case. The process takes 1-2 weeks. We accompany the application and help prepare the justification.

Our Process

  1. Analysis: audit of current IoT infrastructure and requirements
  2. Design: topic schema, broker selection, handler architecture
  3. Implementation: server handler + mobile client (in parallel)
  4. Testing: unit, integration, load testing (up to 10,000 sensors)
  5. Deployment: CI/CD setup, monitoring (Prometheus + Grafana)

Timeline Estimates

Implementation ranges from 4 weeks when integrating with an existing MQTT broker, up to 12 weeks when developing the full stack (broker, server, mobile client). Typical projects start at $15,000 and deliver ROI within 3–6 months. Our system reduces alert management costs by 40% on average, saving $2,000–5,000 monthly for mid-sized deployments. Contact us for a precise estimate for your project.

Team Experience

We have completed over 50 projects in IoT and mobile development. Certified specialists in Swift, Kotlin, and Flutter. We guarantee a 99.9% SLA for alert delivery when our recommendations are followed. Request a consultation for your project — we'll assess the timeline and scope. Contact us to receive an individual cost estimate.