MicrocosmWorksInnovation und Architektur digitaler Kosmen
Ăśber unsKontakt
MicrocosmWorksInnovieren und Gestalten digitaler Kosmen

Bereitstellung von IT-Lösungen, die zählen. Wir sind leidenschaftlich für Technologie, Sicherheit und helfen Unternehmen, durch zuverlässige, innovative IT-Infrastruktur zu wachsen.

[email protected]
+91 7011868196
New Delhi, India

AI Wachstumszentrum

AI HubStartup-InnovationUnternehmensbeschleuniger

Lösungen

Alle LösungenWellness- & Fitness-AppsAI Video PlattformAI Agent Entwicklung

Ressourcen

EinblickeBranchenleitfädenAnwendungsfall-BlaupausenArchitektur-MusterFallstudien

Unternehmen

Ăśber unsKontaktUnsere Arbeit

Dienstleistungen

Digitale BeratungCloud-InfrastrukturSaaS-EntwicklungKI-EntwicklungVideotechnologie
ERP-EntwicklungZoho-AnpassungOdoo-EntwicklungSalesforce-IntegrationBenutzerdefinierte CRM-Entwicklung
QuickBooks-IntegrationIoT-LösungenBlockchain-Entwicklung
Cybersecurity-BeratungIT-Support - L3

© 2026 MicrocosmWorks. Alle Rechte vorbehalten.

DatenschutzrichtlinieNutzungsbedingungen
ZurĂĽck zu Einblicken
AI Development

Erstellen zuverlässiger zeitzonenbewusster Push-Benachrichtigungssysteme

Entwicklung eines Push-Benachrichtigungssystems, das für jeden Benutzer zuverlässig zur richtigen Ortszeit ausgelöst wird.

Mayank Joshi.webpMayank Chandra Joshi
•
July 31, 2026
•
Aktualisiert August 19, 2026
•
5 min read
Untitled design (16).webp
5 min read

Erstellen eines zuverlässigen, zeitzonenbewussten Push-Benachrichtigungssystems

Eine Gesundheits- und Wellness-App musste personalisierte tägliche Anstöße – Mahlzeitenerinnerungen, Stimmungserfassungen, Hydrationsaufforderungen, Schlafhinweise und benutzerdefinierte Erinnerungen – an Tausende von Benutzern weltweit senden. Der Haken: Jede Benachrichtigung musste zur richtigen Ortszeit, genau einmal und niemals an ein inaktives Gerät zugestellt werden. Wir haben die verteilte Pipeline entworfen und gebaut, die dies ermöglicht.

 

Die Herausforderung

  • Zeitzonenkorrektheit im groĂźen MaĂźstab. Eine „9 Uhr FrĂĽhstĂĽckserinnerung“ bedeutet fĂĽr jeden Benutzer etwas anderes. Das Senden in Serverzeit wĂĽrde jemanden in Sydney um 3 AM pingen. Jede Benachrichtigung musste sich auf den lokalen Zeitpunkt des Benutzers beziehen.
  • Kein Spam, keine Duplikation. Das Planen von crons fĂĽhrt unweigerlich zu Ăśberschneidungen und Wiederholungen. Ohne strenge Garantien könnte ein einzelner Benutzer denselben „Zeit fĂĽrs Mittagessen 🥗“-AnstoĂź zwei- oder dreimal erhalten – ein schneller Weg zur Deinstallation.
  • Geräte sind unzuverlässig. Benutzer deinstallieren Apps, widerrufen Berechtigungen und rotieren push tokens ständig. Das blinde Senden von Benachrichtigungen an veraltete tokens verschwendet Ressourcen und verfälscht die Zustellmetriken.
  • Präzises Timing ohne Brute-Force-Scheduler. Das Zustellen Hunderter von Benachrichtigungen zu exakten Minuten – ohne dass ein cron die Datenbank alle 60 Sekunden bombardiert – erforderte einen intelligenteren Mechanismus als naives Polling.

 

Unsere Lösung

Wir haben eine dreistufige Pipeline entwickelt, die was gesendet werden soll, wann es gesendet werden soll und das eigentliche Senden sauber trennt – sodass jede Stufe unabhängig voneinander ausfallen und wiederhergestellt werden kann. Die Datenbank ist die Quelle der Wahrheit, eine Message Queue handhabt das präzise Timing, und eine einzelne Worker-Schicht kommuniziert mit dem push provider.

image.webp

 

Architektur

  • Expo-notifications ist ein React Native client mit nativen Kanälen, einzigartigen Geräuschen und Deep Links, das ein einziges token-Format und eine Delivery API fĂĽr iOS und Android verwendet.
  • NestJS backend mit expo-server-sdk als vereinheitlichter push abstraction ĂĽber FCM und APNs.
  • MongoDB als Quelle der Wahrheit — NotificationMessage, NotificationToken, und NotificationCounter collections.
  • ActiveMQ (STOMP) delay queues, eine pro Kategorie (Mahlzeit, Stimmung, Aktivität, Sicherheit, Erinnerungen), fĂĽr präzise geplante Zustellung.
  • Creator crons, die zeitzonenaufgelöste Benachrichtigungsdatensätze pro Benutzer generieren.
  • Consumer workers, die jede queue abonnieren und die endgĂĽltige Validierung vor dem Senden durchfĂĽhren.
  • AWS ECS Fargate, auf dem crons und consumers laufen; ActiveMQ auf einer dedizierten EC2 instance.

 

Hauptmerkmale

  1. Zeitzonenbewusste Planung. Mithilfe von date-fns-tz wird die lokale Sendezeit jedes Benutzers berechnet, zur Speicherung in UTC zurĂĽckkonvertiert und durch UTC-Datumsfenster begrenzt, um einen AnstoĂź pro Tag zu garantieren.
  2. Datenbank-erzwungene Idempotenz. Ein partieller eindeutiger Index für ausstehende Nachrichten macht die Duplikaterstellung unmöglich – selbst wenn ein cron zweimal läuft:
// Unique only while the message is still PENDING and not deleted

schema.index(

  { userId: 1, notificationTokenId: 1, category: 1, label: 1, scheduledAt: 1 },

  { unique: true, partialFilterExpression: { status: 'pending', isDeleted: false } }

);

 

3. Präzise Zustellung über delay queues. Anstelle eines minütlichen crons reiht der Scheduler Nachrichten jetzt ein, verzögert die Zustellung jedoch bis zur exakten Fälligkeitsminute mithilfe des ActiveMQ's scheduled-delay header:
 

client.send(`/queue/${queueName}`, {

  persistent: 'true'

  'AMQ_SCHEDULED_DELAY': String(delayMs), // delivered exactly when due

}, JSON.stringify(message));

 

4. Einziger aktiver token pro Gerät. Ein partieller eindeutiger Index garantiert genau einen aktiven token pro Gerät; neue Logins setzen den alten token sauber außer Kraft, mit exponential-backoff retries, um gleichzeitige Anmeldungen zu überstehen.

5. Empfangsbestätigungsprüfung + automatische Bereinigung. Nach dem Senden rufen wir Expo receipts ab. Eine DeviceNotRegistered Antwort deaktiviert sofort den inaktiven token, sodass wir nie wieder eine Sendung dafür verschwenden.

f (receipt.status === 'error' &&

    receipt.details?.error === 'DeviceNotRegistered') {

  await this.deactivateToken(token); // stop sending to dead devices

}

 

6. Fehlerschwelle. Jedes Gerät hat einen retry counter; nach 3 aufeinanderfolgenden Fehlern wird der token automatisch außer Betrieb genommen – keine Endlosschleifen, keine zombie tokens.

7. Respektierung der Benutzerabsicht zum Sendezeitpunkt. Die Benachrichtigungseinstellung wird vom consumer bei der Zustellung erneut überprüft, nicht nur bei der Planung – so erhält ein Benutzer, der sich eine Stunde vor einem Anstoß abmeldet, diesen niemals. Nachrichten lösen sich in ehrliche Endzustände auf: success, failed, oder is_missed.

 

Ergebnisse

  • Jeder Benutzer erhält Anstöße zur korrekten Ortszeit, weltweit – null Benachrichtigungen auĂźerhalb der Geschäftszeiten.
  • Duplikate von Benachrichtigungen wurden durch Idempotenz auf Datenbankebene vollständig eliminiert.
  • Inaktive und veraltete device tokens werden automatisch erkannt und stillgelegt, um die Zustellung sauber zu halten.
  • Die Zuverlässigkeit wird erhöht und die Datenbanklast reduziert durch präzise, minutengenaue Zustellung ohne Brute-Force-Scheduler.

 

Technologie-Stack

React Native · Expo Notifications · NestJS · TypeScript · MongoDB · ActiveMQ (STOMP) · expo-server-sdk · date-fns-tz · AWS ECS Fargate

Push-BenachrichtigungenZeitzonenPlanungZuverlässigkeit
Mayank Joshi.webp

Ăśber den Autor

Mayank Chandra Joshi

AI & Cloud Solutions Expert at MicrocosmWorks

Building innovative AI-powered solutions and helping businesses transform through cutting-edge technology.

Möchten Sie mehr erfahren?

Kontaktieren Sie uns, um zu besprechen, wie wir Ihnen bei der Implementierung dieser Lösungen für Ihr Unternehmen helfen können.

Kontakt aufnehmen

Häufig gestellte Fragen

A timezone-aware notification system converts each user's local schedule into UTC before delivery, ensuring reminders arrive at the correct local time regardless of the user's location or daylight saving changes.

Database-level idempotency using unique indexes ensures each scheduled notification is created only once, even if scheduling jobs are retried or executed multiple times.

Delayed message queues deliver notifications at the exact scheduled time without constantly polling the database, improving delivery accuracy while reducing infrastructure load.

A reliable push notification system validates delivery receipts and automatically deactivates expired or unregistered device tokens, preventing failed notifications and improving delivery success rates.

A scalable push notification system combines timezone-aware scheduling, delayed message queues, idempotent database design, token lifecycle management, and delivery validation to ensure accurate and reliable notification delivery.

Comments (0)

Share your thoughts and join the conversation

Leave a Comment

Your email will not be published

No comments yet

Be the first to share your thoughts!