Architektur · Formulare, Prüfung und Workflow-Laufzeit

Ereignisgesteuertes Formular- und Workflow-Backend für WordPress auf AWS

Formulare werden weiterhin in WordPress erstellt und platziert. Dauerhafte Entwürfe, Einreichungen, Diskussionen, Prüfstatus, Benachrichtigungen und nachgelagerte Aktionen laufen hinter einer klar definierten API- und Ereignisgrenze.

WordPress / statisches Frontend
          ↓
      Flow-Laufzeit
      Frontend-API
          ↓
Einreichungs- und Entwurfsstatus
   ├→ Uploads
   ├→ Diskussion / Prüfstatus
   └→ Workflow-Ereignisse
          ↓
E-Mail / Webhooks / Aktionen

Ausführungsgrenze

Ein Formular wird zum Workflow, wenn sein Status die Seitenanfrage überdauern muss

Lange Formulare, Freigaben und Prüfprozesse benötigen einen dauerhaften Status. Flow trennt die Browser-Erfahrung von Backend-Persistenz und nachgelagerter Ausführung. So kann die öffentliche Seite statisch bleiben, während der Prozess unabhängig weiterläuft.

Formular- / Prüfoberfläche in WordPress
          ↓ Browser
      /frontend/* API
   ├→ Entwurf speichern / laden / abschließen
   ├→ Datensatz einreichen
   ├→ Upload-Vertrag
   └→ Diskussions- / Bewertungseingaben
          ↓
dauerhafter Status + Ereignisse
/admin/* → geschützte Verwaltung
          ↓
Workflow-Dispatch → E-Mail / Webhook / Prozessaktion

Sicherheitsgrenze Öffentliche Formularrouten und privilegierte Admin-Routen haben unterschiedliche Risikoprofile. Kontrollen für anonyme Einreichungen, authentifizierter Prüfzugriff und administrative Konfiguration dürfen keine gemeinsame, weit gefasste Autorisierungsfläche verwenden.

Was der Flow-Stack erstellt

Das Flow-Backend trennt API, Rechenleistung, Status, Nutzdaten, Ereignisse, Sicherheit und Betrieb. Diese Übersicht zeigt, welche AWS-Ressourcen die einzelnen Architekturaufgaben erfüllen.

EbeneAWS-RessourcenArchitekturaufgabe
API-EbeneRegionale API Gateway REST API, optionale benutzerdefinierte Domain, optionale Route53-EinträgeGetrennte Frontend- und Admin-Routen bereitstellen, ohne die Formularausführung an das WordPress-Hosting zu binden.
Compute-EbeneForms API Lambda, Workflow Dispatcher Lambda, Email Sender Lambda, Webhook Dispatcher Lambda, Custom Resource Lambda zur BereitstellungSynchrone Formularverarbeitung, asynchrone Workflows, E-Mail-Versand und ausgehende Webhooks als getrennte Betriebseinheiten halten.
Status-EbeneDynamoDB-Tabellen für Einreichungen, Einreichungsereignisse, Vorlagen, Workflow-Definitionen, Formulardefinitionen, Webhook-Endpunkte und ProzesszuordnungenFormulardefinitionen, Datensätze und Workflow-Status in zweckgebundenen Tabellen mit TTL/Aufbewahrung speichern, statt die WordPress-Datenbank als Integrationsprotokoll zu verwenden.
Nutzdaten-EbeneS3-Bucket für Nutzdaten und Vorlagen, optional vorhandene BucketsGroße Dateiübertragungen und wiederverwendbare E-Mail- oder Vorlagenressourcen in Objektspeicher verlagern.
Ereignis-EbeneEventBridge-Regeln und Ereignisse wie Einreichung erstellt/aktualisiert, Status/Aktion sowie AI-Agent abgeschlossen/fehlgeschlagenFormulararbeit in beobachtbare Ereignisse umwandeln, die Workflows auslösen können, ohne den Besucher zu blockieren.
Sicherheits-EbeneCognito-Autorisierer für Admin-Routen, optionale IAM/NONE-Modi, WAF, reCAPTCHA, IP-Zulassungs-/Sperrlisten, SSM/KMS für GeheimnisseÖffentliche Formulareinreichungen und privilegierte Verwaltungs-APIs unterschiedlich schützen.
Betriebs-EbeneCloudWatch-Loggruppen, SQS-Warteschlange für unzustellbare Nachrichten, konfigurierbare Protokollaufbewahrung, optionaler GuardDuty-Malware-SchutzDer Laufzeit eigene Protokolle, eine Wiederholungs-/Fehlerfläche und optionale Prüfung von Nutzdaten geben.

Frontend-API gegenüber Admin-API

Die beiden Routenfamilien bedienen unterschiedliche Aufrufer und dürfen nicht dieselben Vertrauensannahmen übernehmen. Die Tabelle macht die Laufzeittrennung sichtbar, bevor Formularverhalten oder Berechtigungen konfiguriert werden.

RoutenfamilieBeispieleTypischer AufruferSicherheitsprofil
Frontend-Einreichung/frontend/forms/{formId}/submitGerendertes Flow-Formular auf einer öffentlichen oder geschützten SeiteKann ohne Benutzerauthentifizierung laufen, sollte bei anonymem Verkehr jedoch reCAPTCHA, WAF und Ratenbegrenzung verwenden.
Frontend-Entwürfe/frontend/forms/{formId}/drafts, /drafts/load, /drafts/delete, /drafts/{submissionId}/submitBesucher speichert, setzt fort oder schließt ein langes Formular abEntwurfszugangsdaten und endgültige Validierung sind getrennt, damit das Speichern eines Entwurfs keine finalen Workflows auslöst.
Frontend-Upload-Vorbereitung/frontend/forms/{formId}/upload-urlFormularkomponente bereitet einen großen Anhang vorLiefert einen vorsignierten S3-Upload-Vertrag; die Nutzdaten müssen WordPress nicht durchlaufen.
Admin-Formulare/-Einreichungen/admin/forms, /admin/forms/{formId}/submissionsWP Admin oder VerwaltungsoberflächeSollte mit Cognito/IAM und optionaler IP-Zulassungsliste geschützt sein.
Admin-Vorlagen/-Workflows/-Webhooks/admin/templates, /admin/workflows, /admin/webhook-endpointsAdministratoren konfigurieren GeschäftsverhaltenDiese Routen ändern das Laufzeitverhalten und dürfen nie wie öffentliche Frontend-Endpunkte behandelt werden.

Datenmodell: Warum mehrere Tabellen sinnvoll sind

Das Backend trennt Definitionen, aktuelle Datensätze, Ereignisverlauf und Integrationskonfiguration, weil sie unterschiedliche Lebenszyklen haben. Eine einzelne generische Formularzeile reicht für dauerhafte Workflows nicht aus.

TabellenfamilieBedeutungGrund für die Trennung
FormulardefinitionenStruktur und Versionierung der im Frontend verwendeten FormulareEin Formular kann sich ändern, während alte Einreichungen weiterhin verständlich bleiben müssen.
EinreichungenAktueller Einreichungsstatus, Entwurfs-/Endstatus und zentrale FelddatenDies ist der operative Datensatz, den Admin-Ansichten und Workflow-Schritte abfragen.
EinreichungsereignisseAppend-orientierter Verlauf: erstellt, aktualisiert, Status geändert, Aktion aufgerufenAudit- und Wiederholungsverhalten dürfen den aktuellen Einreichungsdatensatz nicht überschreiben.
VorlagenWiederverwendbare E-Mail-/VorlagenmetadatenE-Mail-Inhalte müssen unabhängig von Einreichungsdatensätzen verwaltet werden.
Workflow-DefinitionenRegeln, Aktionen und RoutingverhaltenWorkflow-Logik hat einen eigenen Lebenszyklus und muss explizit versioniert und verwaltet werden.
Webhook-EndpunkteAusgehende Integrationsziele und SigniereinstellungenExterne Systeme sind betriebliche Abhängigkeiten und nicht nur Formularfelder.
ProzesszuordnungenLaufzeitzuordnung zwischen Prozessen, Einreichungen und AktionenKomplexe Workflows benötigen Korrelationsstatus über einen einzelnen Formulardatensatz hinaus.

Sicherheits- und Missbrauchskontrollen

Öffentliche Formularrouten und privilegierte Verwaltungsrouten dürfen kein gemeinsames Schutzmodell verwenden. Diese Tabelle zeigt, wo Bot-Schutz, WAF, Identität und Geheimnisspeicherung in die Flow-Laufzeit gehören.

KontrolleEinsatzortEntwurfsgrund
reCAPTCHAÖffentliche Frontend-FormularendpunkteBot-Einreichungen reduzieren, bevor daraus gespeicherte Datensätze, E-Mails, Webhooks oder Modell-/Workflow-Kosten entstehen.
WAF-RatenbegrenzungFrontend- und Admin-PfadpräfixeMissbrauch für besucher- und adminseitige Routen unterschiedlich drosseln.
Admin-Cognito-Autorisierer/admin/*-RoutenFormulardefinitionen, Einreichungen, Vorlagen, Workflows und Webhook-Konfiguration hinter einer echten Identitätsgrenze halten.
SSM/KMS-GeheimnissereCAPTCHA-Geheimnisse und Webhook-SigniergeheimnisseGemeinsame Geheimnisse aus WordPress-Einstellungen und Vorlagenquellen fernhalten.
GuardDuty-Malware-SchutzNutzdaten-Bucket, wenn aktiviertOptional hochgeladene Nutzdaten prüfen, bevor die nachgelagerte Verarbeitung darauf vertraut.

Bereitstellungsparameter, die die Architektur verändern

Diese Parameter sind keine kosmetischen Formulareinstellungen. Sie verändern Authentifizierung, Missbrauchsschutz, Speichereigentum, Geheimnisse, Domains und Betrieb und müssen als Architekturentscheidungen geprüft werden.

ParameterbereichBeispieleArchitekturwirkung
AuthentifizierungsmodiFrontendApiAuthMode, AdminApiAuthMode, AdminCognitoUserPoolId, ScopesSteuert, ob Frontend- und Admin-Flächen öffentlich, IAM- oder Cognito-geschützt sind.
MissbrauchsschutzEnableRecaptcha, reCAPTCHA-Modus/Site-Key/Schwellenwert, EnableWAF, erlaubte/gesperrte IP-ListenBestimmt, wie viel anonymer Verkehr das Backend erreicht und welche Pfade begrenzt oder zugelassen werden.
SpeichereigentumTemplatesBucketName, PayloadBucketName, PräfixeErmöglicht die Verwendung neu erstellter Buckets oder vorhandener Speicherkonventionen.
GeheimnisseEnableKmsForSecrets, Webhook-Signiergeheimnis, reCAPTCHA-GeheimnisSteuert, ob Geheimnisse mit einem dedizierten KMS-Schlüssel und SSM-Parametern gespeichert werden.
Domain/DNSApiCustomDomainName, Zertifikat-ARN, Route53-EinstellungenVerschiebt die API von einer execute-api-URL zu einer eigenen Domain, wenn DNS und Zertifikat bereit sind.
BetriebDaten- und Protokollaufbewahrung, Lambda-Speicher/Timeout/ProtokollstufeSteuert Kosten, Beobachtbarkeit und Laufzeitreserven, ohne WordPress-Seiten zu ändern.

Implementierungspfad

Modellieren Sie den Prozess, bevor Sie die Aktionen verbinden

Dasselbe Backend kann einfache Formulare und stärker strukturierte Prozesse unterstützen, wenn Entwurfs-, Einreichungs-, Prüf- und Aktionsstatus eindeutig bleiben.

  1. Definieren Sie den Datensatz und seinen Lebenszyklus — Legen Sie fest, was ein Entwurf ist, was zu einem eingereichten Datensatz wird, welche Prüfstatus existieren und welche Felder oder Anhänge sitzungsübergreifend erhalten bleiben müssen.
  2. Trennen Sie Besucher- und Prüferoperationen — Halten Sie öffentliche oder authentifizierte Frontend-Aktionen auf einer schmalen Laufzeitfläche und schützen Sie die administrative Verwaltung von Formularen, Einreichungen und Workflows separat.
  3. Erzeugen Sie Ereignisse nach dauerhaften Statusänderungen — Lösen Sie E-Mails, Webhooks oder andere Prozessaktionen erst aus, nachdem die relevante Datensatz- oder Statusänderung akzeptiert wurde, damit nachgelagerte Fehler die ursprüngliche Einreichung nicht löschen.
  4. Testen Sie Wiederholungen und Übergaben — Prüfen Sie das Fortsetzen von Entwürfen, die endgültige Einreichung, Prüfentscheidungen, Diskussions- oder Bewertungsänderungen, fehlgeschlagene Benachrichtigungen und externe Webhook-Fehler als getrennte Fehlerpfade.

Wann sich die Trennung durch ein ereignisgesteuertes Flow-Backend lohnt

Gute Eignung

Formulare, die tatsächlich Geschäftsprozesse sind

  • Benutzer müssen ein langes Formular sitzungsübergreifend speichern und fortsetzen können.
  • Einreichungen durchlaufen nach dem ersten Formularschritt Prüf-, Freigabe-, Diskussions-, Bewertungs- oder Statusworkflows.
  • Das öffentliche Frontend kann statisch sein, während Status und nachgelagerte Aktionen aktiv und unabhängig betreibbar bleiben müssen.

Einfacher halten

Ein konventioneller Formularweg kann ausreichen, wenn

  • das Formular kurz ist und der Prozess mit einer Einreichung und einer einfachen Benachrichtigung endet.
  • die Website vollständig dynamisch ist und ein vorhandenes Formular-Plugin den Workflow bereits ohne operative Reibung abdeckt.
  • keine dauerhaften Entwürfe, kein Backend-Prüfstatus, kein Ereignisverlauf und keine externen Workflow-Aktionen erforderlich sind.

Problemleitfäden

Käuferprobleme, die diese Architektur unterstützt

Wie ersetze ich Freigaben per E-Mail und Tabellenkalkulation durch einen WordPress-Workflow?

Beginnen Sie mit E-Mail- und Tabellenfreigaben durch einen WordPress-Workflow ersetzen. Dort steht das operative Problem im Mittelpunkt; diese Architektur zeigt, wo Datensätze, Prüfstatus und Workflow-Aktionen ausgeführt werden.

Wie können Benutzer ein langes WordPress-Formular speichern und später fortsetzen?

Siehe Benutzer ein langes WordPress-Formular speichern und später fortsetzen lassen. Dauerhafter Entwurfsstatus gehört hinter die Browser-Laufzeit und nicht in eine einzelne PHP-Seitenanfrage.

Wie kombiniere ich Formulare, Diskussionen und Bewertungen in einem Prüfworkflow?

Siehe WordPress-Prüfworkflow mit Formularen, Diskussionen und Bewertungen erstellen für den Prüfanwendungsfall und Diskussionen, Antworten und Bewertungen zu einem statischen WordPress-Frontend hinzufügen, wenn die Zusammenarbeit nach der statischen Veröffentlichung aktiv bleiben muss.

Funktioniert dies auch mit statisch veröffentlichtem WordPress?

Ja. Die Seite kann aus statischem Hosting bereitgestellt werden, während Flow das konfigurierte Backend aus dem Browser aufruft. WordPress statisch machen, ohne dynamische Funktionen zu verlieren erläutert das umfassendere Modell aus statischer Bereitstellung und Laufzeit.

Beginnen Sie mit dem Workflow-Problem

Verlagern Sie den Prozess aus Posteingängen, bevor Sie weitere Automatisierung hinzufügen

Wählen Sie zuerst das Käuferproblem – Freigabe, Speichern und Fortsetzen oder strukturierte Prüfung – und definieren Sie mit dieser Architektur anschließend Persistenz-, Autorisierungs- und Ereignisgrenzen.