Zurück zum Blog SMS-Betrieb

A2P-SMS-Verkehr bei Kapazitätsengpässen priorisieren

Ein Leitfaden für den Betrieb: OTPs, Warnmeldungen und Benachrichtigungen unterscheiden, interne Prioritäten festlegen und mit Engpässen umgehen, ohne Priorität mit garantierter Zustellung gleichzusetzen.

Schematische Darstellung getrennter Warteschlangen für SMS-OTPs, Warnmeldungen und Benachrichtigungen bei einem Kapazitätsengpass

Warum eine gemeinsame Warteschlange kritische Nachrichtenströme beeinträchtigen kann

Wenn Nachrichten verschiedener Anwendungsfälle dieselbe Warteschlange und dasselbe Sendelimit nutzen, kann ein plötzlicher Anstieg nicht dringender Nachrichten Ressourcen beanspruchen, die auch zeitkritische Nachrichten benötigen. Getrennte Nachrichtenströme können dabei helfen, zu steuern, wie Nachrichten in den Systemen zugelassen und verarbeitet werden, die Ihr Unternehmen verwaltet.

Diese Trennung ist eine betriebliche Entscheidung und garantiert keine Vorrangbehandlung über die gesamte Übertragungskette hinweg. Die Route, zwischengeschaltete Systeme und das Mobilfunknetz können eigene Kontrollen anwenden. Eine interne Priorität stellt weder sicher, dass eine Nachricht früher ankommt, noch dass sie auf dem Endgerät empfangen wird.

  • Ermitteln Sie, wo gemeinsame Warteschlangen bestehen: in der Anwendung, der Messaging-Plattform, der Anbindung an den Anbieter oder anderen Komponenten unter Ihrer Kontrolle.
  • Dokumentieren Sie die in den einzelnen Abschnitten konfigurierten Limits und Richtlinien sowie diejenigen, die von Dritten abhängen.
  • Versprechen Sie Produkt- oder Geschäftsteams keine durchgängige priorisierte Zustellung, wenn diese für die verwendete Route nicht nachgewiesen und vereinbart ist.
Warum eine gemeinsame Warteschlange kritische Nachrichtenströme beeinträchtigen kann

Zweck, Kritikalität und betriebliche Priorität sind nicht dasselbe

Der Zweck beschreibt, wofür eine Nachricht versendet wird: etwa zur Authentifizierung eines Vorgangs per OTP, zur Übermittlung einer Warnmeldung oder zum Versand einer Transaktionsbenachrichtigung. Die Kritikalität gibt an, welche Auswirkungen eine Verzögerung oder ein verspäteter Empfang für den Nutzer hätte. Die betriebliche Priorität legt fest, wie der Nachrichtenstrom in den vom Absender kontrollierten Systemen behandelt wird.

Diese Dimensionen dürfen nicht mit einer regulatorischen Einstufung verwechselt werden. Die interne Klassifizierung dient dem Kapazitätsmanagement. Sie entscheidet nicht allein darüber, ob eine Nachricht zulässig ist, eine wirksame Einwilligung vorliegt oder welche rechtlichen Anforderungen gelten. Prüfen Sie diese Pflichten je nach Anwendungsfall und Rechtsraum gesondert.

  • Kennzeichnen Sie jeden Nachrichtenstrom nach seinem tatsächlichen Zweck und vermeiden Sie vage Kategorien wie „dringend“, wenn diese nicht überprüfbar definiert sind.
  • Bewerten Sie die Kritikalität anhand der Auswirkungen einer Verzögerung, der Nutzungsdauer der Nachricht und der Möglichkeit, den Vorgang über einen anderen Kanal abzuschließen.
  • Halten Sie Prüfungen zu Einwilligung, Inhalt und Compliance unabhängig von der betrieblichen Priorität.
Zweck, Kritikalität und betriebliche Priorität sind nicht dasselbe

Dienstklassen anhand überprüfbarer Kriterien festlegen

Eine Dienstklasse ist nur dann nützlich, wenn sich ihre Regeln erklären und messen lassen. Legen Sie Prioritäten nicht nach Gefühl fest, sondern vereinbaren Sie Kriterien mit Betrieb, Produktverantwortlichen und den Verantwortlichen des jeweiligen Dienstes: Auswirkungen auf Nutzer, funktionale Gültigkeitsdauer, erwartetes Volumen und Möglichkeit einer Wiederherstellung.

Ein OTP kann beispielsweise seinen Nutzen verlieren, sobald die Authentifizierungsanfrage abgelaufen ist. Eine Warnmeldung kann eine schnelle Bearbeitung erfordern, wobei die Dringlichkeit vom Ereignis abhängt. Eine informative Benachrichtigung lässt sich möglicherweise aufschieben. Dies sind Beispiele für die Gestaltung einer internen Richtlinie, keine universelle Klassifizierung und keine regulatorische Empfehlung.

  • Dokumentieren Sie das Ziel jeder Klasse und welche Dienste ihr zugeordnet werden können.
  • Definieren Sie aus Sicht der Anwendung, wann eine Nachricht abgelaufen ist. Gehen Sie nicht davon aus, dass diese Frist automatisch für alle Komponenten der Übertragungskette gilt.
  • Legen Sie fest, ob eine verspätete Nachricht noch einen Nutzen hat oder ob sie abgebrochen, ersetzt oder über einen alternativen Prozess bearbeitet werden sollte.
  • Bestimmen Sie, wer Ausnahmen genehmigen darf und wie diese überprüft werden.

Warteschlangen trennen und Kapazitätsverbrauch steuern

Eine Trennung kann den direkten Wettbewerb zwischen Nachrichtenströmen in den von Ihrem Team verwalteten Komponenten verringern. Die konkrete Umsetzung hängt von der verfügbaren Architektur ab: Nehmen Sie nicht an, dass eine Verbindung, Schnittstelle oder ein Anbieter unabhängige Warteschlangen oder wirksame Prioritäten unterstützt, ohne dies zu überprüfen.

Legen Sie je Nachrichtenstrom Limits und eine reservierte oder gemeinsam genutzte Kapazität fest, die den tatsächlich verfügbaren Vereinbarungen und technischen Kontrollen entsprechen. Ein schlecht konfiguriertes Limit kann auch Kapazität ungenutzt lassen oder wichtige Nachrichten blockieren. Validieren Sie die Richtlinie daher anhand eigener Daten und überprüfen Sie sie sowohl unter normalen als auch unter eingeschränkten Betriebsbedingungen.

  • Trennen Sie Warteschlangen nach Zweck oder Klasse nur dann, wenn das System die Steuerung von Zulassung und Verarbeitung ermöglicht.
  • Begrenzen Sie das Volumen aufschiebbarer Nachrichtenströme, damit ein plötzlicher Anstieg die anderen nicht unkontrolliert verdrängt.
  • Berücksichtigen Sie bei den Limits die bekannte effektive Kapazität in jedem Abschnitt. Gehen Sie nicht davon aus, dass lokal konfigurierte Kapazität der vom Netz akzeptierten Kapazität entspricht.
  • Dokumentieren Sie, was mit zurückgehaltenen Nachrichten geschieht, wenn die Kapazität wieder verfügbar ist.

Zulassung, Zurückstellung und Verwerfen vor einem Engpass festlegen

Wenn die Last die verfügbare Kapazität überschreitet, braucht das System klare Regeln dafür, was zugelassen, zurückgehalten und nicht erneut gesendet werden soll. Ohne abgestimmte Richtlinie können verschiedene Komponenten Nachrichten ansammeln, wiederholt Zustellversuche auslösen oder Nachrichten aufbewahren, die ihren Nutzen bereits verloren haben.

Die Regeln müssen zur funktionalen Gültigkeitsdauer, zu den tatsächlichen Plattformlimits und zu den geltenden Pflichten passen. Das Verwerfen von Nachrichten muss bewusst erfolgen und nachvollziehbar sein; es darf nicht als automatische Lösung für jeden Fall dargestellt werden.

  • Legen Sie fest, welche Klassen aufgeschoben werden können und unter welchen Bedingungen keine neuen Nachrichten mehr zugelassen werden.
  • Definieren Sie, wann abgelaufene oder doppelte Nachrichten abgebrochen werden und wie die Ursprungsanwendung über das Ergebnis informiert wird.
  • Vermeiden Sie Warteschlangen, in denen Nachrichten länger liegen, als ihr Inhalt noch nützlich ist.
  • Protokollieren Sie Ablehnungen, Zurückstellungen und Verwerfungen mit einer nachvollziehbaren Ursache, damit sie analysiert werden können.

Prioritäten mit TPS, Backpressure und Wiederholungsversuchen abstimmen

Die interne Priorisierung muss mit Durchsatzgrenzen, Signalen zur Laststeuerung und bestehenden Wiederholungsrichtlinien zusammenspielen. Erhöhen Sie den Versand nicht und wiederholen Sie Anfragen nicht wahllos, um Verzögerungen aufzuholen: Je nach Verhalten der Anwendung und der beteiligten Komponenten könnte dies die Last verstärken oder Duplikate erzeugen.

Prüfen Sie in der Dokumentation jeder Schnittstelle, welche Antworten, Limits und Steuerungsmechanismen verfügbar sind. Die hier verfügbaren technischen Nachweise reichen nicht aus, um ein einheitliches Verhalten von SMPP-Feldern, TPS, Ablaufzeiten oder Zustellstatus zu behaupten. Konfigurieren Sie jede Integration anhand ihrer aktuellen vertraglichen und technischen Dokumentation.

  • Legen Sie Sendelimits pro Verbindung oder Ziel nur dann fest, wenn sie für die konkrete Integration bestätigt sind.
  • Stimmen Sie Wiederholungsversuche auf beobachtete Antworten, die Gültigkeitsdauer der Nachricht und den Schutz vor Duplikaten ab.
  • Beachten Sie die von den einzelnen Komponenten bereitgestellten Backpressure-Signale; ersetzen Sie sie nicht durch eine automatische Erhöhung des Durchsatzes.
  • Testen Sie Änderungen in einer kontrollierten Umgebung, bevor Sie sie auf produktiven Nachrichtenverkehr anwenden.

Jede Klasse messen, ohne Annahme, DLR und Empfang gleichzusetzen

Die Annahme einer Anfrage durch eine Schnittstelle bezeichnet ein Ergebnis an diesem Punkt der Übertragungskette. Sie bedeutet für sich genommen nicht, dass die Nachricht auf dem Endgerät empfangen wurde. Ein DLR ist ein Statusbericht, dessen Bedeutung und Zuverlässigkeit von der Route und der Integration abhängen. Stellen Sie ihn nicht als unabhängigen Nachweis dafür dar, dass eine Person die Nachricht gesehen hat.

Analysieren Sie Kennzahlen nach Klasse und Ziel, sofern die verfügbaren Daten vergleichbar sind. Betrachten Sie Latenz, Verfügbarkeit und gemeldete Zustellstatus zusammen mit den jeweiligen Definitionen, Messzeiträumen und Beobachtungsgrenzen.

  • Unterscheiden Sie zwischen angenommenen Anfragen, Ablehnungen, gemeldeten Zustellstatus und gegebenenfalls verfügbaren unabhängigen Prüfungen.
  • Erfassen Sie die Zeit zwischen der Anfrage und nachfolgenden Ereignissen und geben Sie an, welche Abschnitte der Übertragungskette die Messung umfasst.
  • Überprüfen Sie ausstehende, abgelaufene, doppelte und erneut gesendete Nachrichten je Klasse.
  • Vergleichen Sie Kennzahlen aus verschiedenen Routen oder Zeiträumen erst, nachdem Sie überprüft haben, dass Definitionen und Datenquellen gleichwertig sind.

Engpässe testen und die Wiederherstellung dokumentieren

Eine Priorisierungsrichtlinie muss mit Tests geprüft werden, die die für die eigene Architektur relevanten Risiken nachbilden. Simulieren Sie hohe Last, Verzögerungen, Ablehnungen und eine schrittweise Wiederherstellung nur in autorisierten Umgebungen und so, dass Nutzer und externe Netze nicht beeinträchtigt werden.

Vereinbaren Sie vor der Aktivierung einer Richtlinie Verantwortliche, Kriterien für den Eintritt in und den Austritt aus dem eingeschränkten Betrieb, Ausnahmen und ein Rücksetzverfahren. Halten Sie Änderungen fest, damit nachvollziehbar bleibt, welche Nachrichtenströme begrenzt wurden und warum.

  • Testen Sie, ob aufschiebbare Nachrichten bei steigender Last nicht die gesamte kontrollierbare Kapazität beanspruchen.
  • Prüfen Sie, dass zurückgehaltene Nachrichten nicht mehr gesendet werden, wenn sie keinen Nutzen mehr haben.
  • Überprüfen Sie Wiederholungsversuche, Duplikate und die Benachrichtigung der Ursprungssysteme.
  • Legen Sie fest, wer Limits und Prioritäten ändern darf, wer Ausnahmen genehmigt und wie die Konfiguration zurückgesetzt wird.
  • Besprechen Sie die Ergebnisse mit Betrieb, Architektur, Produktverantwortlichen und den Zuständigen für Compliance.
FAQ

Häufige Fragen

Garantiert eine Priorisierung, dass ein OTP zuerst ankommt?

Nein. Eine intern konfigurierte Priorität kann nur Komponenten beeinflussen, in denen sie angewendet und kontrolliert wird. Sie weist weder eine Vorrangbehandlung über die gesamte Route hinweg noch den Empfang auf dem Endgerät oder die Zustellung innerhalb einer bestimmten Frist nach.

Sind OTPs, Warnmeldungen und Benachrichtigungen regulatorische Klassen?

Das sollte nicht angenommen werden. In diesem Leitfaden sind sie Beispiele für Messaging-Zwecke, die zur Gestaltung betrieblicher Klassen dienen können. Regulatorische und einwilligungsbezogene Pflichten müssen je nach Inhalt und anwendbarem Kontext gesondert geprüft werden.

Welche Kennzahlen bestätigen, dass eine SMS auf dem Telefon angekommen ist?

Die Annahme einer Anfrage und ein DLR dürfen nicht automatisch mit einer unabhängigen Bestätigung des Empfangs auf dem Endgerät gleichgesetzt werden. Prüfen Sie, wofür die einzelnen Statusmeldungen in der Integration stehen, und kommunizieren Sie die verbleibende Unsicherheit klar.

Wie lässt sich ein Sendelimit je Klasse festlegen?

Hier lässt sich kein allgemeingültiger Wert begründen. Richten Sie das Limit nach der tatsächlich bestätigten Kapazität Ihrer Plattform und jeder Integration aus. Legen Sie fest, wie es sich bei Backpressure verhält, und überprüfen Sie die Richtlinie mit kontrollierten Tests und eigenen Daten.

Sollten beim Wiederanlauf alle zurückgestellten Nachrichten erneut gesendet werden?

Nicht unbedingt. Prüfen Sie vor einem erneuten Versand, ob die Nachricht noch nützlich ist, bereits abgelaufen oder verarbeitet wurde und welche Richtlinie für Duplikate gilt. Wiederholungsversuche müssen der Dokumentation der Schnittstelle und den bestehenden Limits entsprechen.

Verwendete Quellen

  1. SMPP v3.4 Issue 1.2SMPP Developers Forum
  2. RFC 9110: HTTP SemanticsIETF
  3. 3GPP specifications by series3GPP
  4. ITU-T Recommendation E.164International Telecommunication Union
  5. GSMA networks resourcesGSMA