Zustellungsmodell
Truncus trennt die Transportschicht von der Kontrollebene. Diese Trennung erklärt, was "deterministische Zustellung" in der Praxis bedeutet.
Architektur
Transportschicht: AWS SES übernimmt die SMTP-Zustellung an die Empfänger-Mailserver.
Kontrollebene (EU): Truncus orchestriert Versendungen, speichert Zustellereignisse, erzwingt Idempotenz, verwaltet Replay und stellt terminalen Status bereit.
Ihr System interagiert ausschließlich mit der Kontrollebene. Die Transportschicht ist ein Implementierungsdetail.
Zustellungsablauf
- Sendeanfrage von Truncus empfangen
- Validierung (API-Key, Payload, Domain-Autorisierung)
- Transportversuch via AWS SES
- Terminaler Status aus SES-Rückmeldung ermittelt
- Ereignis in EU-Infrastruktur gespeichert
- Webhook an Ihren Endpoint ausgelöst
Terminale Status
Jeder Versand endet in genau einem terminalen Status:
| Status | Bedeutung |
|---|---|
delivered | Vom Empfänger-Mailserver akzeptiert |
bounced | Vom Empfänger-Mailserver abgelehnt, mit Grund |
rejected | Vor Transportversuch blockiert, mit Grund |
delivered bedeutet, dass die Nachricht vom Mailserver des Empfängers akzeptiert wurde. Es garantiert keine Posteingang-Platzierung.
bounced enthält maschinenlesbare Gründe: mailbox_full, no_mx_record, mailbox_does_not_exist.
rejected erfolgt vor dem Zustellversuch: suppression_list, invalid_address, domain_not_verified.
Was Truncus nicht tut
- Keine impliziten Wiederholungen nach Bounce oder Rejection
- Kein Status-Merging — jeder Versand wird unabhängig getrackt
- Keine optimistischen Erfolgsmeldungen — SES-Ablehnungen werden weitergeleitet
Event-Speicherung
Alle Zustellereignisse werden in EU-Infrastruktur gespeichert und sind über API oder Dashboard abfragbar. Ereignisse werden auf allen Plänen 90 Tage lang aufbewahrt.
Ereignisse sind auf Abruf wiederholbar. Siehe Replay →
Synchroner vs. asynchroner Status
Die API-Response enthält für die meisten Versendungen einen synchronen terminalen Status. Finales SES-Feedback ist asynchron und kann das gespeicherte Ereignis innerhalb von Sekunden aktualisieren.
Für Produktionssysteme empfehlen wir, den Zustellungsstatus über Webhooks statt über Polling der Send-Response zu konsumieren.