Wir bauen nicht nach,
was man mieten kann.
Und wir mieten niemals das Urteil.
Ein Video auf neun Netzwerke zu veröffentlichen ist ein gelöstes Problem. Jemand anderes hat das App-Audit von TikTok bereits bestanden, kümmert sich bereits um OAuth-Erneuerung, fängt bereits jede API-Änderung ab. Dafür monatlich zu zahlen ist kein Kompromiss — es ist die richtige Architektur.
Nicht mietbar ist die Frage, ob ein Inhalt überhaupt hinaus soll. Dieses Urteil — zwei Gates, eines quer über Modellfamilien, eines mit einem Menschen der für die Marke zeichnet — bleibt bei uns. Genau dort steckt die eigentliche Entwicklungsarbeit.
- Status
- Täglich im Betrieb
- Art
- Content-Operations
- Unser
- Inhalte, Gates, Daten
- Gemietet
- Verteilung auf Plattformen
- Prüfung
- Zwei Gates, Cross-Model
- Rückweg
- Ein Feature-Flag
- TikTok mieten decisionDas Schwere ist das Plattform-Audit, nicht der HTTP-Aufruf. Ein Partner, der es bestanden hat, verkauft das als Posten auf der Rechnung.
- YouTube bauen decisionBleibt auf unserer eigenen Anbindung. Die gemieteten Auswertungen sind schlechter als die nativen.
- Instagram mieten migriertHinter einem Feature-Flag zum Partner verlegt. Flag zurück auf 0 stellt den alten Pfad wieder her.
- Prüfung Claude-Entwurf→andere Modellfamilie prüft routingEin Modell, das die Ausgabe der eigenen Familie prüft, stimmt sich selbst zu oft zu.
- Prüfung GLM-Entwurf→Claude-Modell prüft routingDieselbe Regel in der Gegenrichtung. Die Tabelle ist bewusst symmetrisch.
- Abgelehnt Prüfer→Mensch escalationZweimal abgelehnt heißt Stopp. Die Pipeline versucht sich nicht an einem Urteil vorbei, an dem sie gescheitert ist.
Jede davon ist eine stehende Regel, kein Einzelfall. Die Routing-Tabelle liegt in einem Modul, damit jeder Agent, der Inhalte anfasst, sie gleich auflöst.
Ausgangslage Warum Integration die schwerere Disziplin ist § 01
Der Reflex in einem Betrieb wie unserem heißt: selbst bauen.
Bauen ist sichtbar. Es fühlt sich nach Fortschritt an, es lässt sich vorführen, und am Ende steht etwas, auf das man zeigen kann. Genau dieser Reflex führt aber dazu, dass Teams eine schlechtere Kopie von etwas pflegen, das sie für den Preis eines Mittagessens hätten haben können.
Manches darf man schlicht nicht bauen. Eine Publishing-Anbindung an eine große Social-Plattform ist im Kern kein Code — sie ist ein Prüfverhältnis. Die Plattform begutachtet die Anwendung, die in Ihrem Namen postet, das dauert Wochen, und es kann schlicht scheitern. Ein Partner, der das bestanden hat, macht aus einem wochenlangen Compliance-Projekt eine monatliche Rechnung und eine URL im Request.
Die interessante Frage war deshalb nie bauen oder kaufen. Sie lautete: wo verläuft die Naht — was behalten wir, was geben wir ab, und wie kommen wir zurück, wenn das Gemietete enttäuscht?
Bestand Wo die Naht liegt § 02
Das Board, über das jeder Beitrag läuft — mit den Spalten, die die Pipeline tatsächlich verwendet. Zwei der fünf sind menschlich: eine, in der ein Prüfer auf einer anderen Modellfamilie bestehen muss, und eine, in der ein Mensch für die Marke zeichnet. Zweimal Abgelehntes bleibt dort stehen — es wird nie still erneut versucht.
Entscheidungen Was wir wählten, und was es kostete § 03
Vier Entscheide darüber, wo man aufhört zu bauen.
Nicht die API mieten, sondern das Audit.
Wir haben für ein Netzwerk einen eigenen Publisher geschrieben — und dann aufgehört. Der Blocker war nie der Request, sondern das Prüfverfahren dahinter. Der neueste Kanal läuft deshalb über einen Partner, der dieses Verfahren bereits bestanden hat, und wir übergeben ihm eine URL auf ein Video, das weiterhin bei uns liegt. Wir mieten Reichweite. Die Datei mieten wir nicht.
Wo die gemietete Variante schlechter war, blieb unsere: die eigene Schnittstelle der Videoplattform liefert bessere Leistungsdaten als der Aggregator — dieser Kanal wurde nie umgestellt.
Kostet: eine Abhängigkeit, die wir nicht kontrollieren, und eine wiederkehrende Rechnung.
Bringt: einen funktionierenden Kanal diese Woche statt nächstes Quartal — und kein eigenes Audit-Risiko.
Der Prüfer darf nicht das Modell des Autors teilen.
Ein Modell, das Ausgaben der eigenen Familie prüft, stimmt sich selbst viel zu bereitwillig zu. Die Routing-Tabelle ist deshalb ausdrücklich und symmetrisch: Was ein Agent auf der einen Modellfamilie entworfen hat, prüft ein Agent auf einer anderen — und umgekehrt genauso. Danach zeichnet eine fachliche Leitung für die Marke. Ein Inhalt erreicht einen Kanal erst, wenn beide Gates bestanden sind.
Wird ein Entwurf zweimal abgelehnt, hält die Pipeline an und legt ihn einem Menschen vor. Sie versucht sich nicht an einem Urteil vorbei, an dem sie bereits gescheitert ist.
Kostet: zwei Modell-Anbieter, die funktionieren müssen, und einen längeren Weg vom Entwurf zur Veröffentlichung.
Bringt: eine Zweitmeinung, die tatsächlich eine zweite ist.
Der Kanal-Status wird abgeleitet, nie gespeichert.
Der naheliegende Entwurf ist eine Status-Spalte je Kanal. Wir berechnen ihn stattdessen aus den Merkmalen, die der Datensatz ohnehin trägt. Der Datensatz bleibt die einzige Wahrheit und kann sich nicht selbst widersprechen; das Board, auf das ein Mensch schaut, ist schlicht die Antwort auf „was muss als Nächstes passieren?“, ermittelt beim Lesen.
Kostet: etwas Logik bei jedem Lesezugriff, und die Regel, dass niemand sie zwischenspeichert.
Bringt: keine zweite Wahrheit, die migriert werden müsste, und kein Auseinanderdriften.
Auf diesen Kanal kommt nur, was sich ehrlich deklarieren kann.
Eine Plattform verlangt bei jedem Beitrag eine Marken-Kennzeichnung. Dieses Feld auf „nein“ zu setzen, während werblicher Inhalt veröffentlicht wird, wäre eine Lüge, ausgesprochen von einem Cronjob. Also ist die Zulässigkeit am Inhaltstyp festgemacht: Hilfe, Anleitung, Tutorial, Erklärung, Problem-Lösung und ausdrücklich neutrale Vergleiche dürfen auf diesen Kanal. Ein produktfreundlicher Vergleich wird nicht still umformuliert, bis er durchrutscht — er bleibt draußen.
Kostet: weniger zulässige Beiträge auf dem Kanal mit der größten Reichweite.
Bringt: eine Deklaration, die wir schriftlich vertreten können — gegenüber der Plattform und gegenüber einem Kunden.
Takt Wie der Plan aussieht § 04
Ein Prozess ist erst echt, wenn er einen Kalender übersteht.
Gates lassen sich leicht beschreiben und schwer einhalten. Das hier ist ein Monat des Veröffentlichungsplans: was gebucht ist, auf welchem Kanal, und die zwei Sorten von Beitrag, die bewusst stehen bleiben.
Durchgezogen heißt freigegeben und terminiert. Eine gestrichelte Markierung ist ein Beitrag, den das System nicht von allein veröffentlicht: entweder wird noch daran gearbeitet, oder er wartet auf einen Menschen. Nichts rutscht in den nächsten Zustand, nur weil ein Datum erreicht ist.
Störfälle Zwei Annahmen, die sich als falsch erwiesen § 05
Beide betrafen eine Naht, nicht ein Bauteil.
Support-Anbindung
Die Ticketdaten waren vorhanden. Erreichbar waren sie nicht.
Support-Tickets flossen längst herein: ein Listener sammelte sie und schrieb Tagesdateien für die zeitgesteuerten Jobs. Wer aber jetzt sofort in ein einzelnes Ticket sehen wollte, musste den Aufruf von Hand bauen — und die nötige Zugangskennung war nur innerhalb der Cronjobs gesetzt. Aus einer gewöhnlichen Shell antwortete der Endpunkt mit glatter Ablehnung. Es sah aus, als hätte niemand Zugriff. Alle hatten Zugriff. Nur erreichte ihn keiner.
Was wir angenommen hatten: dass Daten, die irgendwo ankommen, damit verfügbar sind. Sind sie nicht. Eine Pipeline, die nur ihren eigenen Cron bedient, ist eine halbe Pipeline.
Behoben → ein kleines Kommando, das die Kennung selbst auflöst — und das die Transportschicht des vorhandenen Collectors importiert, statt sie nachzubauen. Eine Anbindung, zwei Zugänge, eine Stelle die kaputtgehen kann.
Steuerungs-Granularität
Ein Schalter je Produkt war die völlig falsche Achse.
Das erste Steuerungsmodell gab jedem Produkt je einen Schalter für Ads, Video und Blog. Das war viel zu grob — ein einziger Ads-Schalter für vier verschiedene Werbearten, kein Begriff von Format, kein Begriff eines einzelnen Kontos. Praktisch führte es zu Produktion auf Verdacht: Dinge entstanden, weil ein Schalter an war, nicht weil ein Kanal sie brauchte.
Was wir angenommen hatten: dass das Produkt die steuernde Achse ist. Die Korrektur kam aus dem Code — eine Upload-Sperre verweigerte längst jeden Upload, dessen Marke nicht zum Zielkonto passte. Die fehlende Ebene war die Marke, und sie ersetzte den Großteil einer Produkt-mal-Kanal-Matrix.
Behoben → drei ehrliche Ebenen statt einer vagen: was eine Plattform technisch trägt, auf welches konkrete Konto wir posten, und welches Format wir herstellen. Vorhandener Code sagte uns, dass das Modell falsch war, bevor es ein Mensch bemerkte.
Übertrag Was das für Sie bedeutet § 06
Integrations-Entscheidungen altern schneller als Code-Entscheidungen. Machen Sie sie explizit.
Nicht den Code mieten, sondern die Zulassung
Wenn das eigentliche Produkt eines Anbieters eine Freigabe ist, die Sie sonst selbst erarbeiten müssten, kauft die Lizenzgebühr einen Terminplan, keine Bibliothek. Das ist meist das stärkste Kaufargument überhaupt.
Jedes Gemietete braucht einen Rückweg
Wir haben einen Kanal hinter einem Schalter zum Partner verlegt, und der alte Pfad blieb stehen. Eine Integration, die sich nicht in einem Zug rückgängig machen lässt, ist keine Integration — sie ist eine nicht zu Ende gedachte Migration.
Eine Zweitmeinung braucht ein anderes Modell
Prüfung über Modellfamilien hinweg kostet eine zusätzliche Anbieterbeziehung und etwas Zeit. Sie ist der günstigste uns bekannte Weg, eine Flotte davon abzuhalten, sich selbstsicher bis zum Kunden durchzuwinken.