Referenz
Headless-Prozessplattform für die Seven.One Entertainment Group
Seven.One Entertainment Group · Medien & Rundfunk
Headless Drupal als Prozess-Engine, mit React-Oberfläche
Projekt
Ausgangslage
Die Seven.One Entertainment Group ist das Entertainment-Unternehmen der ProSiebenSat.1 Media SE mit Sitz in Unterföhring bei München. Für ihre Sendergruppe wickelt sie umfangreiche interne Vorgänge ab, mit vielen Schritten, mehreren beteiligten Teams, Fristen und Freigaben. Jeder Vorgang muss vom Anlegen bis zum Abschluss nachvollziehbar bleiben. Vorher lief diese Arbeit in einem älteren System, das RedOrbit ebenfalls mit Drupal gebaut hatte.
Aufgabe
Gesucht war eine interne Webanwendung, die diese Vorgänge verbindlich führt. Mehrere Teams mit unterschiedlichen Rechten arbeiten darin gleichzeitig. Wiederkehrende Schritte soll das System selbst erledigen, und jede Änderung muss belegbar sein. Die Anwendung läuft im internen Netz des Kunden und soll mit den Anforderungen wachsen.
Dafür reichte ein Redaktionssystem nicht. Es brauchte ein Backend, das Geschäftslogik trägt, und eine Oberfläche, die sich wie eine Fachanwendung bedienen lässt.
Lösung
Headless mit klarer Arbeitsteilung. Drupal ist das Backend: Es hält die Daten, setzt Regeln und Rechte durch und führt die Abläufe aus. Die Oberfläche ist eine eigenständige React-Anwendung, die nur über Schnittstellen mit Drupal spricht. Beide Teile haben eigene Repositories und eigene Pipelines und lassen sich unabhängig voneinander ausliefern.
Drupal als Prozess-Engine. Ein CMS ist für Inhalte gebaut, nicht für Abläufe. Hier bildet Drupal keine Seiten ab, sondern Vorgänge. Das Datenmodell besteht aus rund zwei Dutzend eigenen Inhaltstypen, die über Entity References eine Hierarchie bilden. Statusfelder beschreiben, wo ein Datensatz in seinem Lebenszyklus steht, und legen fest, welche Schritte als Nächstes möglich sind. Die Logik dafür steckt in mehr als 40 eigenen Drupal-Modulen.
Regeln und Rechte im Backend. Validierung, Berechtigungen und Plausibilitätsprüfungen liegen vollständig in Drupal. Die Oberfläche kann nichts speichern, was das Backend nicht zulässt, und zeigt Fehler feldgenau an. Rollen trennen die Arbeit der Teams voneinander. Kritische Aktionen brauchen eine zweite Freigabe und lassen sich vorher in einem Probelauf prüfen.
Automatisierung ohne Benutzer. Drupal arbeitet auch, wenn niemand angemeldet ist. Rund 30 zeitgesteuerte Jobs, organisiert mit Ultimate Cron, starten und beenden Vorgänge nach Zeitplan, erinnern an Fristen, weisen auf liegengebliebene Fälle hin, erstellen regelmäßige Berichte und tauschen Daten mit anderen Systemen aus. Sperren verhindern, dass ein Job doppelt läuft.
JSON:API lesend und schreibend. Die meisten Headless-Projekte lesen nur. Hier schreibt die Oberfläche so viel, wie sie liest: Datensätze entstehen, ändern sich und werden gelöscht, alles über JSON:API, erweitert mit JSON:API Extras. Für Aktionen, die mehr sind als das Speichern eines Datensatzes, stellen die eigenen Module zusätzliche Endpunkte bereit.
Konflikte erkennen statt überschreiben. Bearbeiten zwei Personen oder ein Hintergrundjob denselben Datensatz zur gleichen Zeit, erkennt das System die veraltete Version (Optimistic Locking) und meldet den Konflikt verständlich. Keine Änderung geht still verloren.
Lückenlose Historie. Jede Änderung an einem Datensatz wird mit Zeitpunkt und Person protokolliert. So bleibt jeder Vorgang auch im Nachhinein nachvollziehbar.
React-Anwendung als Arbeitsoberfläche. Die Teams arbeiten nicht im Drupal-Backend, sondern in einer eigenen Anwendung, gebaut für viele Formulare und schnelles Arbeiten:
- React mit TypeScript, gebaut mit Vite
- React Router für die Navigation, MUI als Komponentenbibliothek
- Final Form für umfangreiche Formulare, CKEditor 5 für formatierte Texte
- ein typisierter JSON:API-Client und ein eigenes Datenmodell im Frontend
- ein schlanker, reaktiver Store für den Zustand der Anwendung
Betrieb und Weiterentwicklung. Die Konfiguration ist versioniert, umgebungsspezifische Werte sind per Config Split und Config Ignore getrennt. GitLab CI baut Backend und Frontend getrennt und verteilt sie auf Staging und Produktion. Änderungen kommen nur über Merge Requests in den Hauptzweig.
Die Rolle von RedOrbit
RedOrbit hat die Plattform konzipiert und entwickelt, Backend und Oberfläche aus einer Hand: das Datenmodell, die eigenen Drupal-Module, die Schnittstellen und die React-Anwendung. Seitdem entwickeln wir sie laufend weiter, mit neuen Funktionen nahezu jede Woche. Die Plattform ist heute unser umfangreichstes und aktivstes Headless-Projekt.
Ergebnis
Drupal trägt hier einen kompletten Geschäftsprozess, nicht nur Inhalte. Die Teams arbeiten in einer Oberfläche, die sie durch ihre Abläufe führt, Routinearbeit übernimmt das System. Weil Backend und Oberfläche getrennt sind, lassen sich beide unabhängig voneinander weiterentwickeln. Die Plattform zeigt, wie weit sich Drupal über ein Content-Management-System hinaus einsetzen lässt.
Einblicke
Technik
- Drupal als Backend und Prozess-Engine
- Über 40 eigene Drupal-Module
- JSON:API lesend und schreibend, mit JSON:API Extras und eigenen Endpunkten
- Statusgesteuerte Abläufe mit Rollen, Freigaben und Probelauf
- Rund 30 zeitgesteuerte Jobs mit Ultimate Cron
- Optimistic Locking und Änderungshistorie
- React mit TypeScript, Vite, React Router, MUI, Final Form
- Config Split, Config Ignore, GitLab CI für Staging und Produktion