Product

Wöchentliches Produkt-Update: Verbesserte Benachrichtigungen für E-Mail-Limits

E-Mail-Benachrichtigungen warnen Sie nun, bevor Ihr Limit erreicht ist. Weiterlesen...
Bild für Wöchentliches Produkt-Update: Verbesserte Benachrichtigungen für E-Mail-Limits

Mit Mailgun versenden Sie monatlich Millionen von E-Mails. Für viele Entwicklungsteams, die die nächste bahnbrechende App entwickeln, sind das für den Anfang jedoch etwas zu viele. Um Ihnen die Arbeit zu erleichtern – falls Sie unser kostenloses Abonnement für Tests und Entwicklung oder eine Plattform wie Heroku oder EngineYard nutzen, die das monatliche E-Mail-Volumen begrenzt –, haben wir die E-Mail-Benachrichtigungen verbessert. Sie erhalten nun eine Warnung, bevor Ihr Limit erreicht ist.

E-Mail-Benachrichtigungen warnen Sie nun, bevor Ihr Limit erreicht ist

Falls Sie ein Mailgun-Abonnement mit einem festen Versandlimit nutzen, haben wir Ihnen bisher immer eine E-Mail-Benachrichtigung gesendet, sobald Ihr Limit erreicht war. Das lässt Ihnen jedoch nicht viel Zeit für die Planung. Daher versenden wir ab dieser Woche auch Benachrichtigungen, sobald Sie sich Ihrem Limit nähern. Im Detail bedeutet das:

  • Die Kundschaft in unserem kostenlosen Abonnement erhält Benachrichtigungen, sobald 75 % des Tageslimits erreicht sind
  • Die restliche Kundschaft mit begrenzten Abonnements (wie Heroku oder EngineYard) erhält Benachrichtigungen bei 75 % und 95 % des monatlichen Limits

Es ist eine kleine Verbesserung, aber wir hoffen, dass sie Ihnen hilft, Ihre großen Pläne besser in die Tat umzusetzen.

Falls Sie sich dafür interessieren, wie wir Benachrichtigungen zuverlässig und skalierbar entwickelt haben, ist der folgende Abschnitt genau richtig für Sie

Eine Benachrichtigung zu versenden, sobald die Kundschaft 75 % ihres Versandlimits erreicht hat, erscheint einfach – und das ist es konzeptionell auch. Die Herausforderung bestand jedoch darin, dies in ein zuverlässiges, skalierbares System zu verwandeln, das für Tausende von Kundinnen und Kunden, die täglich Millionen von E-Mails versenden, reibungslos funktioniert. Als wir uns das Problem zunächst ansahen, wählten wir den offensichtlichen Ansatz: Wir fügten unserer MongoDB-basierten Kundendatenbank ein Feld hinzu und erhöhten den Zähler für jede gesendete E-Mail.

Als uns jedoch bewusst wurde, welche Last dies für unsere MongoDB bedeuten würde (die bei einer so hohen Anzahl von Schreibvorgängen pro Sekunde nicht optimal funktioniert), war klar, dass wir einen anderen Ansatz benötigen.

Ein akteurbasiertes System entkoppelt Prozesse für eine bessere Leistung

Anstatt unsere Hauptdatenbank komplexer zu machen, in die wir ohnehin nur im absoluten Notfall schreiben, haben wir ein akteurbasiertes System implementiert. Dieses entkoppelt die meisten Ereignisse von unserer Hauptdatenbank. Durch die Entkopplung von Ereignissen in verschiedene spezialisierte Systeme ist Mailgun deutlich effizienter, einfacher zu programmieren und widerstandsfähiger. Dafür gibt es viele Gründe. Einer davon ist, dass verschiedene Prozesse auf unterschiedlichen Maschinen ausgeführt werden. Gibt es also ein Problem mit einem Prozess, hat dies keine Auswirkungen auf die anderen. Wie funktioniert das?

Mailgun ist im Grunde lediglich eine Reihe von Ereignissen. Zustellungen. Bounces. Öffnungen. Klicks. Wenn eines dieser Ereignisse eintritt, zeichnen wir es auf. Anschließend werden verschiedene Prozesse eingerichtet, um diese Ereignisse zu verarbeiten. Tritt beispielsweise ein „Zustellungs“-Ereignis ein, gibt es einen Prozess, der die Kundschaft per Webhook benachrichtigt.

Im Fall der Benachrichtigungen für E-Mail-Limits funktioniert das folgendermaßen:

  1. Mailgun stellt E-Mails zu und empfängt sie, wodurch Ereignisse generiert werden.
  2. Jedes dieser Ereignisse wird an Redis gesendet, einen Key-Value-Store, der sich hervorragend für den Aufbau von Ereignis-Warteschlangen eignet.
  3. Wir haben dann einen separaten Prozess – wir nennen ihn Watchdog –, der nur auf diese Ereignisse wartet und unter anderem berechnet, ob die Kundschaft das E-Mail-Limit für ihr Abonnement erreicht hat.
  4. Ein weiterer Prozess versendet schließlich die Nachricht oder deaktiviert das Konto, falls die Kundschaft ihr Limit überschritten hat.

Jeder Prozess erledigt eine einzige Aufgabe äußerst zuverlässig. Es gibt nur wenige bewegliche Teile und die Skalierbarkeit ist unkompliziert. Ein klarer Gewinn.

Das war es für diese Woche. Wir hoffen, dass Ihnen die neuen Ereignis-Benachrichtigungen gefallen und Sie etwas mehr darüber erfahren haben, wie wir bei Mailgun entwickeln.

Viel Erfolg beim E-Mail-Versand,

Ihr Mailgun-Team