<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.wombat-gov.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.wombat-gov.dev/" rel="alternate" type="text/html" /><updated>2026-11-01T08:16:22+00:00</updated><id>https://www.wombat-gov.dev/feed.xml</id><title type="html">Wombat</title><subtitle>Wombat ist ein community-getriebenes, cloud-agnostisches Open-Source-Framework für Architektur, Security, Governance und Reifegradmodelle.</subtitle><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><entry xml:lang="de"><title type="html">Wombat: Die neue Stimme von WAF++</title><link href="https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-die-neue-stimme-von-wafpp/" rel="alternate" type="text/html" title="Wombat: Die neue Stimme von WAF++" /><published>2026-10-29T00:00:00+00:00</published><updated>2026-10-29T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-die-neue-stimme-von-wafpp</id><content type="html" xml:base="https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-die-neue-stimme-von-wafpp/"><![CDATA[<p><img src="/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" alt="Introducing Wombat — The New Voice of WAF++" style="width:100%;height:auto;border-radius:12px;margin-bottom:32px;" /></p>

<p>Am 28. Oktober 2026 wurde aus dem Projekt, das als WAF++ gestartet ist, Wombat.</p>

<p>Das ist kein Pivot. Nichts wurde übernommen, nichts abgespalten, kein Strategiedeck war beteiligt. Die Controls, der Code, die Lizenzen, das Governance-Modell und die Menschen — es sind dieselben, die elf Monate zuvor in einer Hotelbar über Cloud-Architektur diskutiert haben.</p>

<p>Geändert hat sich das, was die Community hundertmal am Tag laut sagen muss: der Name.</p>

<h2 id="wo-das-angefangen-hat">Wo das angefangen hat</h2>

<p>Es war der Abend vor der Cloud Native Conference 2025. Tim, Sebastian und ich saßen in einer Hotelbar mit zu wenig Steckdosen und zu viel Gesprächsstoff — Cloud-Architektur, Souveränität, Provider-Lock-in und die unangenehme Erkenntnis, dass die „Best Practices”, an die wir uns alle halten sollten, meistens eine Produkt-Roadmap mit einem Diagramm obendrauf waren.</p>

<p>Die Lücke war offensichtlich: Jeder Hyperscaler hat ein Well-Architected Framework. Keines davon ist neutral. Keines gehört den Menschen, die die Architekturen tatsächlich bauen. Ein offenes, engineering-getriebenes, von der Community getragenes Gegenstück gab es nicht.</p>

<p>Zwei Wochen später kam Artem dazu — und passenderweise war er es auch, der den ersten Namen gefunden hat.</p>

<p>Unsere Open-Source-Idee war nie „ein PDF veröffentlichen und hoffen, dass es zitiert wird”. Sondern: Die Kriterien selbst müssen öffentlich, zitierbar, forkbar und diskutierbar sein. Jeder Control soll etwas sein, auf das man im Audit zeigen kann, dem man in einem Pull Request widersprechen kann — und das man öffentlich verbessern kann.</p>

<h2 id="was-wir-tatsächlich-gebaut-haben">Was wir tatsächlich gebaut haben</h2>

<p>Zwischen dieser Bar und diesem Beitrag ist eine Menge passiert:</p>

<ul>
  <li><strong>Februar 2026</strong> — Marketing-Website und Antora-Dokumentation gehen live.</li>
  <li><strong>12. Mai 2026</strong> — Version 1.0 des Frameworks und der Tooling-Suite erscheint, einen Tag vor der Cloud Native Conference 2026 in Frankfurt.</li>
  <li><strong>Juli 2026</strong> — die Agentic-Säule kommt dazu; das Framework hat jetzt acht Säulen.</li>
  <li><strong>Heute</strong> — Framework v1.1, WOMBATpass v1.1.0, mehr als 100 Controls, das PASS-Scoring-Modell und Governance über öffentliche RFCs.</li>
</ul>

<p>Das Tooling ist mitgewachsen. WOMBATpass ist CLI, Dashboard und Server, dazu eine GitHub Action und ein MCP-Server. Es parst Terraform und AWS CDK statisch, bewertet die Controls und erzeugt auditfähige Evidenz — ohne Cloud-Zugangsdaten.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/multicloud-blueprint.jpg" alt="Ein Wombat verbindet isolierte AWS-, Azure- und Google-Cloud-Umgebungen mit einem Multi-Cloud-Architektur-Blueprint" style="width:100%;height:auto;" />
  <figcaption>Ein Blueprint über isolierte Provider-Umgebungen hinweg — das ist die Idee in einem Bild. Der Blueprint ist öffentlich, und jeder kann ihn ändern.</figcaption>
</figure>

<h2 id="der-teil-von-open-source-den-wir-falsch-hatten">Der Teil von Open Source, den wir falsch hatten</h2>

<p>Jetzt kommt der unangenehme Teil: Unsere Lizenzen waren von Tag eins offen. Apache 2.0 für den Code, CC BY 4.0 für die Dokumentation. Auch die Governance war offen — jede wesentliche Entscheidung läuft durch ein öffentliches RFC, mit Begründung.</p>

<p>Und trotzdem war etwas kaputt.</p>

<p>Denn Offenheit ist nicht nur eine <code class="language-plaintext highlighter-rouge">LICENSE</code>-Datei. Sie ist auch die Frage, ob Menschen dich finden, deinen Namen aussprechen und dich ohne Fußnote zitieren können. Und „WAF++” ist an allen drei Punkten gescheitert:</p>

<ul>
  <li>Im Security-Kontext bedeutet <strong>WAF längst Web Application Firewall</strong>. Jede einzelne Vorstellung begann mit einer Korrektur.</li>
  <li>Das <strong>„++” überlebt nicht</strong> — nicht in Suchmaschinen, nicht in URLs, nicht im Flur einer Konferenz. Es ist eine Programmier-Referenz, für die sich unser Publikum nie angemeldet hat.</li>
  <li>In freier Wildbahn tauchte das Projekt als <strong>WAF++, WAF2p, waf2p und WAFpass</strong> auf — teilweise im selben Satz.</li>
</ul>

<p>Eine Community kann keinen Namen besitzen, den sie erst erklären muss. Also haben wir den Namen wie jeden anderen Defekt behandelt: gefixt.</p>

<blockquote>
  <p>Open Source ist keine Lizenz, die man anhängt. Es ist ein Name, den Menschen tragen können.</p>
</blockquote>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/cicd-gateway.jpg" alt="Ein Wombat mit Bauhelm prüft einen Code-Commit an einem sicheren CI/CD-Gateway" style="width:100%;height:auto;" />
  <figcaption>Compliance als Gate in der Pipeline, nicht als Foliensatz nach dem Projekt. Gleicher Control, neue Stimme.</figcaption>
</figure>

<h2 id="warum-ein-wombat">Warum ein Wombat?</h2>

<p>Weil er baut. Er gräbt Tunnel, hält sie instand und verbindet Dinge, die sonst getrennt bleiben — und das unterirdisch, ohne Applaus zu brauchen. Das beschreibt Architekturarbeit ziemlich gut. Und ein Community-Projekt.</p>

<p>Außerdem ist es praktisch: Ein Tier lässt sich in jeder Sprache aussprechen, in jeder Suchmaschine finden und mit keinem Firewall-Produkt verwechseln.</p>

<p>Wombat ist kein zweites Projekt neben WAF++. Es <em>ist</em> WAF++ — mit einem Namen, der funktioniert. Das Ankündigungsbild sagt es besser, als ich es kann: die neue Stimme von WAF++.</p>

<h2 id="was-sich-ändert--die-kurzfassung">Was sich ändert — die Kurzfassung</h2>

<ul>
  <li><strong>Projekt und Framework:</strong> WAF++ → <strong>Wombat</strong></li>
  <li><strong>Tooling:</strong> WAFpass → <strong>WOMBATpass</strong> (CLI, Dashboard, Server, GitHub Action, MCP-Server)</li>
  <li><strong>Kommando:</strong> <code class="language-plaintext highlighter-rouge">wombat</code></li>
  <li><strong>Website:</strong> <a href="https://www.wombat-gov.dev/">www.wombat-gov.dev</a></li>
  <li><strong>Installer:</strong> <a href="https://wombat-cli.dev/">wombat-cli.dev</a></li>
</ul>

<p>Zwei Bezeichner bleiben nicht stehen, sondern ziehen mit um. Die Antora-Dokumentation wird gemeinsam mit dem Framework umbenannt — mit Fallback-Routing, damit bestehende Links unter <code class="language-plaintext highlighter-rouge">/docs/wafpp/1.1.0/</code> weiter auflösen, statt ins Leere zu laufen. Und die beiden Python-Pakete werden unter dem neuen Namen erneut auf PyPI veröffentlicht. Bis diese Migration durch ist, funktionieren die aktuellen Pfade und Pakete unverändert weiter.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/air-gapped-validation.jpg" alt="Ein Wombat führt die lokale WOMBATpass-Validierung in einem air-gapped Raum ohne externen Zugriff aus" style="width:100%;height:auto;" />
  <figcaption>Lokale Ausführung, kein externer Zugriff. Die statische Analyse bleibt in deiner Umgebung.</figcaption>
</figure>

<h2 id="was-sich-nicht-ändert">Was sich nicht ändert</h2>

<p>Die Dinge, auf die es ankommt — und die kein Rename anfassen kann:</p>

<ul>
  <li><strong>Governance.</strong> RFC-getrieben, öffentlich, mit Begründung. Keine stillen Updates, kein Anbieter, der hinter verschlossenen Türen entscheidet.</li>
  <li><strong>Lizenzen.</strong> Code unter Apache 2.0, Dokumentation unter CC BY 4.0.</li>
  <li><strong>Neutralität.</strong> Kein Hyperscaler, kein einzelnes Unternehmen, kein Upsell.</li>
  <li><strong>Die Substanz.</strong> Acht Säulen, 100+ Controls, das PASS-Scoring-Modell, der Evidenzpfad.</li>
  <li><strong>Die Menschen.</strong> Dasselbe Team, inzwischen mit mehr Beitragenden, als wir zählen können — und genau darum geht es.</li>
</ul>

<p>Und die Geschichte wird nicht umgeschrieben. Ältere Artikel in diesem Blog behalten den Namen „WAF++”, weil das Projekt damals so hieß. Das zu ändern wäre Revisionismus — kein Rebranding.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/commit-validation.jpg" alt="Ein Wombat fängt fehlerhafte und gültige Commits in einem Validierungsnetz vor einem sicheren Repository-Gate ab" style="width:100%;height:auto;" />
  <figcaption>Validierung vor dem Ingest: drei Commits kommen durch, der Rest erreicht das Repository nie.</figcaption>
</figure>

<h2 id="wie-es-weitergeht">Wie es weitergeht</h2>

<p>Der Name war das Letzte, das noch eine Erklärung brauchte. Alles andere steht: ein offenes Framework, funktionierendes Tooling, öffentliche Governance und ein Release-Tempo, das wir halten können.</p>

<p>Was jetzt kommt, ist weniger glamourös und wichtiger: mehr Controls, mehr Working Groups, mehr echte Architekturen, die öffentlich reviewed werden — und mehr Menschen, die den Namen des Projekts sagen können, ohne einen Nebensatz anzuhängen.</p>

<p>Also — ausprobieren, kaputt machen, mitdiskutieren:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-fsSL</span> https://wombat-cli.dev/install.sh | sh
pip <span class="nb">install </span>wafpass-core
</code></pre></div></div>

<p>Das Framework findest du unter <a href="https://www.wombat-gov.dev/">www.wombat-gov.dev</a>, den Quellcode auf <a href="https://github.com/waf2p">GitHub</a>, und jede Entscheidung beginnt als RFC, den jeder aufmachen kann.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/compliance-pass.jpg" alt="Ein Wombat stempelt eine Cloud-Infrastructure-Compliance-Checkliste als PASS / COMPLIANT ab" style="width:100%;height:auto;" />
  <figcaption>Audit-Status: freigegeben. Nicht weil ein Anbieter das sagt — sondern weil die Evidenz öffentlich und die Kriterien zitierbar sind.</figcaption>
</figure>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/community-iam-module.jpg" alt="Der Wombat übergibt ein IAM-Regelmodul an einen Dachs, umgeben von Community-Beitragenden und CNCF-inspirierter Governance" style="width:100%;height:auto;" />
  <figcaption>Ein Framework ist etwas, das Menschen einander weitergeben. Das ist die Open-Source-Idee — jetzt mit einem Namen, der dazu passt.</figcaption>
</figure>

<p>WAF++ war nie eine schlechte Idee. Es war eine gute Idee mit einem Namen, der ständig im Weg stand.</p>

<p>Willkommen im Bau.</p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="governance" /><category term="open_source" /><category term="cloud" /><summary type="html"><![CDATA[Das Framework war offen, die Lizenzen waren offen, die Governance war offen — nur der Name arbeitete gegen all das. Was wir seit dem ersten Bierdeckel gebaut haben, warum aus WAF++ Wombat wurde und was sich wirklich ändert.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Wombat: The New Voice of WAF++</title><link href="https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-the-new-voice-of-wafpp/" rel="alternate" type="text/html" title="Wombat: The New Voice of WAF++" /><published>2026-10-29T00:00:00+00:00</published><updated>2026-10-29T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-the-new-voice-of-wafpp</id><content type="html" xml:base="https://www.wombat-gov.dev/governance/open_source/cloud/2026/10/29/wombat-the-new-voice-of-wafpp/"><![CDATA[<p><img src="/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" alt="Introducing Wombat — The New Voice of WAF++" style="width:100%;height:auto;border-radius:12px;margin-bottom:32px;" /></p>

<p>On 28 October 2026, the project that started as WAF++ became Wombat.</p>

<p>This is not a pivot. Nothing was acquired, nothing was forked away, no strategy deck was involved. The controls, the code, the licenses, the governance model and the people are the same people who were arguing about cloud architecture in a hotel bar eleven months earlier.</p>

<p>What changed is the thing the community has to say out loud a hundred times a day: its name.</p>

<h2 id="where-this-started">Where this started</h2>

<p>It was the evening before Cloud Native Conference 2025. Tim, Sebastian and I were sitting in a hotel bar with too little power and too much to talk about — cloud architecture, sovereignty, provider lock-in, and the uncomfortable realization that the “best practices” we were all supposed to follow were mostly someone’s product roadmap with a diagram on top.</p>

<p>The gap was obvious: every hyperscaler has a Well-Architected Framework. None of them is neutral. None of them is owned by the people who actually build the architectures. There was no open, engineering-first, community-driven counterpart.</p>

<p>Two weeks later Artem joined, and — fittingly — he was also the one who came up with the first name.</p>

<p>Our open-source idea was never “publish a PDF and hope people cite it”. It was that the criteria themselves must be public, citable, forkable and contestable. Every control should be something you can point at in an audit, disagree with in a pull request, and improve in public.</p>

<h2 id="what-we-actually-built">What we actually built</h2>

<p>A lot has happened between that bar and this post:</p>

<ul>
  <li><strong>February 2026</strong> — the marketing site and the Antora documentation went live.</li>
  <li><strong>12 May 2026</strong> — version 1.0 of the framework and of the tooling shipped, one day before Cloud Native Conference 2026 in Frankfurt.</li>
  <li><strong>July 2026</strong> — the Agentic pillar landed, taking the framework to eight pillars.</li>
  <li><strong>Today</strong> — framework v1.1, WOMBATpass v1.1.0, more than 100 controls, the PASS scoring model, and governance through public RFCs.</li>
</ul>

<p>The tooling grew with it. WOMBATpass is a CLI, a dashboard and a server, plus a GitHub Action and an MCP server. It parses Terraform and AWS CDK statically, evaluates the controls, and produces auditor-ready evidence — without needing cloud credentials.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/multicloud-blueprint.jpg" alt="A wombat bridging isolated AWS, Azure and Google Cloud estates with a multi-cloud architecture blueprint" style="width:100%;height:auto;" />
  <figcaption>One blueprint across isolated provider estates — that is the whole idea in one picture. The blueprint is public, and anyone can change it.</figcaption>
</figure>

<h2 id="the-part-of-open-source-we-got-wrong">The part of open source we got wrong</h2>

<p>Here is the uncomfortable bit: our licenses were open from day one. Apache 2.0 for the code, CC BY 4.0 for the documentation. Our governance was open, too — every significant decision goes through a public RFC, with the reasoning attached.</p>

<p>And still, something was broken.</p>

<p>Because openness is not only a <code class="language-plaintext highlighter-rouge">LICENSE</code> file. It is also whether people can find you, say your name, and cite you without a footnote. And “WAF++” failed all three:</p>

<ul>
  <li>In security conversations, <strong>WAF already means Web Application Firewall</strong>. Every single introduction started with a correction.</li>
  <li>The <strong>”++” does not survive</strong> search engines, URLs, or a conference hallway. It is a programming reference that most of our audience never signed up for.</li>
  <li>In the wild, the project appeared as <strong>WAF++, WAF2p, waf2p and WAFpass</strong> — sometimes within the same sentence.</li>
</ul>

<p>A community cannot own a name it has to explain first. So we treated the name like any other defect: we fixed it.</p>

<blockquote>
  <p>Open source is not a license you attach. It is a name people can carry.</p>
</blockquote>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/cicd-gateway.jpg" alt="A wombat in a hard hat checking a code commit at a secure CI/CD gateway" style="width:100%;height:auto;" />
  <figcaption>Compliance as a gate in the pipeline, not a slide deck after the project. Same control, new voice.</figcaption>
</figure>

<h2 id="why-a-wombat">Why a wombat?</h2>

<p>Because it is a builder. It digs tunnels, maintains them, and connects things that would otherwise stay apart — and it does that underground, without needing applause. That is a fairly accurate description of architecture work and of a community project.</p>

<p>It is also practical: an animal is pronounceable in every language, findable in every search engine, and impossible to confuse with a firewall.</p>

<p>Wombat is not a second project next to WAF++. It <em>is</em> WAF++ — with a name that works. The announcement image says it better than I can: the new voice of WAF++.</p>

<h2 id="what-changes--the-short-version">What changes — the short version</h2>

<ul>
  <li><strong>Project and framework:</strong> WAF++ → <strong>Wombat</strong></li>
  <li><strong>Tooling:</strong> WAFpass → <strong>WOMBATpass</strong> (CLI, dashboard, server, GitHub Action, MCP server)</li>
  <li><strong>Command:</strong> <code class="language-plaintext highlighter-rouge">wombat</code></li>
  <li><strong>Website:</strong> <a href="https://www.wombat-gov.dev/">www.wombat-gov.dev</a></li>
  <li><strong>Installers:</strong> <a href="https://wombat-cli.dev/">wombat-cli.dev</a></li>
</ul>

<p>Two identifiers are migrating as well, rather than being frozen. The Antora documentation gets renamed along with the framework — with fallback routing, so existing links under <code class="language-plaintext highlighter-rouge">/docs/wafpp/1.1.0/</code> keep resolving instead of breaking. And the two Python packages are being re-uploaded to PyPI under the new name. Until that migration lands, the current paths and packages keep working exactly as before.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/air-gapped-validation.jpg" alt="A wombat running WOMBATpass local validation in an air-gapped room with no external access" style="width:100%;height:auto;" />
  <figcaption>Local execution, no external access. Static analysis stays inside your environment.</figcaption>
</figure>

<h2 id="what-does-not-change">What does not change</h2>

<p>The things that matter, and that no rename can touch:</p>

<ul>
  <li><strong>Governance.</strong> RFC-driven, public, with reasoning attached. No silent updates, no vendor deciding behind closed doors.</li>
  <li><strong>Licenses.</strong> Code under Apache 2.0, documentation under CC BY 4.0.</li>
  <li><strong>Neutrality.</strong> No hyperscaler, no single company, no upsell.</li>
  <li><strong>The substance.</strong> Eight pillars, 100+ controls, the PASS scoring model, the evidence trail.</li>
  <li><strong>The people.</strong> The same team, now with more contributors than we can keep track of — which is exactly the point.</li>
</ul>

<p>And the history is not rewritten. Older articles on this blog keep the name “WAF++”, because that is what the project was called when they were written. Removing that would be revisionism, not a rebrand.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/commit-validation.jpg" alt="A wombat catching failing and passing commits in a validation net in front of a secure repository gate" style="width:100%;height:auto;" />
  <figcaption>Validation before ingest: three commits pass, the rest never reach the repository.</figcaption>
</figure>

<h2 id="where-we-go-from-here">Where we go from here</h2>

<p>The name was the last thing that still required an explanation. Everything else is in place: an open framework, working tooling, public governance, and a release cadence that we can keep.</p>

<p>What comes next is less glamorous and more important: more controls, more working groups, more real architectures reviewed in public, and more people who can say the project’s name without adding a clause.</p>

<p>So — try it, break it, argue with it:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-fsSL</span> https://wombat-cli.dev/install.sh | sh
pip <span class="nb">install </span>wafpass-core
</code></pre></div></div>

<p>The framework lives at <a href="https://www.wombat-gov.dev/">www.wombat-gov.dev</a>, the source on <a href="https://github.com/waf2p">GitHub</a>, and every decision starts as an RFC that anyone can open.</p>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/compliance-pass.jpg" alt="A wombat stamping a cloud infrastructure compliance checklist as PASS / COMPLIANT" style="width:100%;height:auto;" />
  <figcaption>Audit status: approved. Not because a vendor said so — because the evidence is public and the criteria are citable.</figcaption>
</figure>

<figure class="article-fig">
  <img src="/assets/images/articles/wombat-rebrand/community-iam-module.jpg" alt="The wombat handing an IAM rule module to a badger, surrounded by community contributors and CNCF-style governance" style="width:100%;height:auto;" />
  <figcaption>A framework is something people hand to each other. That is the open-source idea — now with a name that fits it.</figcaption>
</figure>

<p>WAF++ was never a bad idea. It was a good idea with a name that kept getting in the way.</p>

<p>Welcome to the burrow.</p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="governance" /><category term="open_source" /><category term="cloud" /><summary type="html"><![CDATA[The framework was open, the licenses were open, the governance was open — but the name was working against all of it. What we built since the first bar napkin, why WAF++ became Wombat, and what actually changes.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/wombat-rebrand/introducing-wombat.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">Exit Is Flight. Not Freedom.</title><link href="https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-is-not-freedom/" rel="alternate" type="text/html" title="Exit Is Flight. Not Freedom." /><published>2026-04-13T00:00:00+00:00</published><updated>2026-04-13T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-is-not-freedom</id><content type="html" xml:base="https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-is-not-freedom/"><![CDATA[<p><img src="/assets/images/articles/exit-fig1-en.png" alt="Exit Is Flight. Not Freedom. — WAF++ at Cloud Native Conference 2026" style="width:100%;height:auto;border-radius:12px;margin-bottom:32px;" /></p>

<p>I hear it everywhere. And it’s wrong.</p>

<p>“We have to get out of AWS.” “Azure is a security risk.” “As long as we’re with a US hyperscaler, we’re not sovereign.” I encounter these statements in architecture reviews, in compliance discussions, at conferences. They sound decisive. They feel right.</p>

<p>And they’re still wrong.</p>

<p>Not because the desire for independence is misguided. That desire is legitimate and important. But because <strong>exit and sovereignty are two completely different things</strong> — which our industry constantly conflates.</p>

<blockquote>
  <p>“Those who don’t know what they have cannot know what they depend on. And those who don’t know that don’t make sovereign decisions — no matter where they migrate.”</p>

  <p><em>WAF++ Sovereign Pillar · SOV-010</em></p>
</blockquote>

<p>Exit without visibility is not a step toward sovereignty. It is a step toward a new dependency — one that you now have to operate yourself, without the managed-service depth of a hyperscaler, without dedicated teams, and without the infrastructure expertise these companies have built up over decades.</p>

<figure class="article-fig" id="fig1-wrap">
<svg id="fig1-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 420" style="width:100%;height:auto;display:block;" aria-labelledby="fig1-en-title" role="img">
  <title id="fig1-en-title">Figure 1 — What really happens during an exit?</title>
  <defs>
    <marker id="arr1en" markerWidth="9" markerHeight="9" refX="7" refY="3.5" orient="auto">
      <path d="M0,0 L0,7 L9,3.5 z" fill="#ef4444" />
    </marker>
    <clipPath id="clip-left-en">
      <rect x="16" y="98" width="332" height="264" rx="10" />
    </clipPath>
    <clipPath id="clip-right-en">
      <rect x="552" y="98" width="332" height="264" rx="10" />
    </clipPath>
  </defs>

  <!-- Background -->
  <rect width="900" height="420" fill="#ecf2fb" rx="12" />

  <!-- Label -->
  <rect x="18" y="18" width="104" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="70" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">FIGURE 1</text>

  <!-- Title -->
  <text x="18" y="74" font-family="Inter,system-ui,sans-serif" font-size="19" font-weight="700" fill="#0b1220">What really happens during an exit?</text>

  <!-- Divider -->
  <line x1="18" y1="88" x2="882" y2="88" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= LEFT PANEL: TODAY ======= -->
  <rect x="16" y="98" width="332" height="264" rx="10" fill="#ffffff" stroke="#22c55e" stroke-width="2.5" />
  <!-- TODAY badge -->
  <rect x="126" y="112" width="88" height="22" rx="11" fill="#f0fdf4" stroke="#86efac" stroke-width="1" />
  <text x="170" y="127.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.2" fill="#15803d">TODAY</text>
  <!-- Title -->
  <text x="182" y="156" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="15.5" font-weight="700" fill="#0b1220">Governed Cloud</text>
  <!-- Box 1 -->
  <rect x="36" y="168" width="292" height="36" rx="7" fill="#0ea5e9" />
  <text x="182" y="190.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Database (RDS)</text>
  <!-- Box 2 -->
  <rect x="36" y="212" width="292" height="36" rx="7" fill="#0284c7" />
  <text x="182" y="234.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Object Storage (S3)</text>
  <!-- Box 3 -->
  <rect x="36" y="256" width="292" height="36" rx="7" fill="#0369a1" />
  <text x="182" y="278.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">CDN (CloudFront)</text>
  <!-- Box 4 -->
  <rect x="36" y="300" width="292" height="36" rx="7" fill="#075985" />
  <text x="182" y="322.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Identity &amp; Controls</text>
  <!-- Green footer (clipped) -->
  <g clip-path="url(#clip-left-en)">
    <rect x="16" y="342" width="332" height="20" fill="#f0fdf4" />
    <text x="182" y="356" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#16a34a">✓ 1 Team · clear · auditable</text>
  </g>
  <!-- Caption -->
  <text x="182" y="380" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="12.5" font-weight="700" fill="#16a34a">Clear. Controlled. Sovereign.</text>

  <!-- ======= MIDDLE: EXIT ARROW ======= -->
  <rect x="381" y="188" width="78" height="24" rx="12" fill="#fee2e2" stroke="#fca5a5" stroke-width="1" />
  <text x="420" y="204.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#dc2626">EXIT</text>
  <line x1="356" y1="230" x2="524" y2="230" stroke="#ef4444" stroke-width="3.5" marker-end="url(#arr1en)" />
  <text x="420" y="258" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="500" fill="#dc2626">= Flight into</text>
  <text x="420" y="272" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="500" fill="#dc2626">Complexity</text>

  <!-- ======= RIGHT PANEL: AFTER EXIT ======= -->
  <rect x="552" y="98" width="332" height="264" rx="10" fill="#161b28" stroke="#ef4444" stroke-width="2" />
  <!-- Badge -->
  <rect x="608" y="112" width="154" height="22" rx="11" fill="#7f1d1d" />
  <text x="685" y="127.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#fca5a5">AFTER EXIT</text>
  <!-- Title -->
  <text x="718" y="156" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="15.5" font-weight="700" fill="#f1f5f9">Self-operated</text>
  <!-- 3×3 grid -->
  <rect x="566" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">PostgreSQL</text>
  <text x="612" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">HA</text>
  <rect x="664" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Ceph</text>
  <text x="710" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Cluster</text>
  <rect x="762" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">CDN</text>
  <text x="808" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">(self)</text>
  <rect x="566" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">PKI &amp;</text>
  <text x="612" y="252.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Certs</text>
  <rect x="664" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Backup</text>
  <text x="710" y="252.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Mgmt</text>
  <rect x="762" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Monitoring</text>
  <rect x="566" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Auth /</text>
  <text x="612" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">IdP</text>
  <rect x="664" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Patch</text>
  <text x="710" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Mgmt</text>
  <rect x="762" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">On-Call</text>
  <text x="808" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Rota</text>
  <!-- Red footer (clipped) -->
  <g clip-path="url(#clip-right-en)">
    <rect x="552" y="342" width="332" height="20" fill="#7f1d1d" />
    <text x="718" y="356" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#fca5a5">⚠ Who is responsible?</text>
  </g>
  <!-- Caption -->
  <text x="718" y="380" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="12.5" font-weight="700" fill="#ef4444">Complex. Unclear. Expensive.</text>

  <!-- Credit -->
  <text x="450" y="410" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" fill="#9ba8bb">waf2p.dev · WAF++ Sovereign Pillar</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Fig. 1 — Exit ≠ Freedom.</strong> What is today an orderly governed cloud becomes, after an unplanned exit, a patchwork of self-operated services. RDS, S3, CloudFront, IAM — everything must be replaced, patched, monitored, and owned. By whom, exactly?</div>
  <button type="button" class="article-fig-dl" data-fig="fig1-svg" data-filename="wafpp-fig1-exit-freedom.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="what-really-happens-during-an-exit">What really happens during an exit</h2>

<p>Let’s be concrete. Technically, an exit is possible — that’s undisputed. Kubernetes runs everywhere. Terraform abstracts providers. The open-source ecosystem with OpenStack, Ceph, and Cilium is mature.</p>

<p>But when you exit RDS, someone has to operate PostgreSQL HA themselves. Failover, backups, security patches — who does that at 3am? When you exit S3, you need an object storage team. When you exit CloudFront, you build your own CDN logic. When you exit IAM, you need your own PKI.</p>

<p>These are not theoretical problems. They are operational realities that become visible exactly when something breaks — and usually too late.</p>

<blockquote>
  <p><strong>From the field:</strong> A European government agency worked for 3 years on an AWS exit. Afterward, they found that 60% of the original compliance requirements were still not met by the new on-premises solution. The problem was never the provider. It was the missing governance framework — which was still missing after the exit.</p>
</blockquote>

<p>That’s not an isolated case. It’s the pattern. Without inventory, without controls, and without documented dependencies, you trade one known dependency for several unknown ones. That’s not more sovereignty — that’s more complexity with less oversight.</p>

<p><strong>Sovereignty is not a question of the provider. It is a question of visibility.</strong></p>

<figure class="article-fig" id="fig2-wrap">
<svg id="fig2-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 448" style="width:100%;height:auto;display:block;" aria-labelledby="fig2-en-title" role="img">
  <title id="fig2-en-title">Figure 2 — Two Conceptions of Sovereignty</title>

  <!-- Background -->
  <rect width="900" height="448" fill="#ecf2fb" rx="12" />

  <!-- Label -->
  <rect x="18" y="18" width="104" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="70" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">FIGURE 2</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16.5" font-weight="700" fill="#0b1220">Two Conceptions of Sovereignty</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= LEFT: EXIT = FREEDOM (MISCONCEPTION) ======= -->
  <rect x="16" y="78" width="378" height="326" rx="10" fill="#1e263a" />
  <rect x="72" y="96" width="250" height="22" rx="11" fill="#374151" />
  <text x="197" y="111.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#94a3b8">COMMON MISCONCEPTION</text>
  <text x="205" y="158" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="28" font-weight="800" fill="#f87171">Exit</text>
  <text x="205" y="188" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="18" font-weight="700" fill="#e2e8f0">= Freedom</text>
  <line x1="36" y1="206" x2="374" y2="206" stroke="#2c3650" stroke-width="1" />
  <text x="52" y="232" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Find a different provider</text>
  <text x="52" y="260" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Cancel the contract</text>
  <text x="52" y="288" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Done. Sovereign.</text>
  <text x="36" y="318" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.9" fill="#64748b">RESULT IN PRACTICE:</text>
  <circle cx="48" cy="338" r="4.5" fill="#ef4444" />
  <text x="60" y="342.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#f87171">Cost shock from self-operation</text>
  <circle cx="48" cy="364" r="4.5" fill="#ef4444" />
  <text x="60" y="368.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#f87171">Unexpected hidden dependencies</text>

  <!-- ======= DIVIDER ======= -->
  <text x="450" y="172" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.8" fill="#0094ff">WAF++</text>
  <text x="450" y="190" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="22" fill="#0094ff">→</text>
  <text x="450" y="210" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.8" fill="#0094ff">BETTER</text>

  <!-- ======= RIGHT: VISIBILITY = FREEDOM (WAF++) ======= -->
  <rect x="506" y="78" width="378" height="326" rx="10" fill="#0b1020" />
  <rect x="506" y="78" width="378" height="4" rx="2" fill="#0094ff" />
  <rect x="580" y="96" width="152" height="22" rx="11" fill="#0c2340" />
  <text x="656" y="111.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#60a5fa">WAF++ VISIBILITY</text>
  <text x="695" y="158" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="28" font-weight="800" fill="#f1f5f9">Visibility</text>
  <text x="695" y="188" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="18" font-weight="700" fill="#0094ff">= Freedom</text>
  <line x1="526" y1="206" x2="864" y2="206" stroke="#1e2d42" stroke-width="1" />
  <text x="542" y="232" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Inventory: know what you have</text>
  <text x="542" y="260" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Document all dependencies</text>
  <text x="542" y="288" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Define &amp; enforce controls</text>
  <text x="526" y="318" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.9" fill="#64748b">RESULT:</text>
  <circle cx="538" cy="338" r="4.5" fill="#22c55e" />
  <text x="550" y="342.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#86efac">Exit is possible at any time</text>
  <circle cx="538" cy="364" r="4.5" fill="#22c55e" />
  <text x="550" y="368.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#86efac">Sovereign — regardless of provider</text>

  <!-- Bottom statement -->
  <rect x="16" y="412" width="868" height="24" rx="10" fill="#0b1020" />
  <text x="450" y="428" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#60a5fa">Sovereignty is not a question of the provider. It is a question of visibility.</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Fig. 2 — Myth vs. Reality.</strong> What most believe: changing provider = sovereign. What WAF++ shows: visibility = sovereign. With full inventory and controls, exit is possible at any time — but no exit is needed to achieve sovereignty.</div>
  <button type="button" class="article-fig-dl" data-fig="fig2-svg" data-filename="wafpp-fig2-sovereignty.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="what-sovereignty-really-means">What sovereignty really means</h2>

<p>Here is the thesis that WAF++ represents — and it’s uncomfortable because it means more work than a migration project:</p>

<p><strong>Sovereignty is a continuous system property, not a destination.</strong></p>

<p>It doesn’t arise from canceling a contract. It arises from knowing at any point in time what you have, why you use it, how you depend on it — and how you can get out if you must.</p>

<p>That means: <strong>Inventory</strong> — every resource, every dependency, every proprietary service documented. <strong>Controls</strong> — governance requirements defined as YAML, machine-checked, versioned. <strong>Portability as a decision</strong> — not every workload must be portable, but every decision about it must be conscious. And <strong>public transparency</strong> — decisions, votes, and roadmap changes visible to everyone.</p>

<p>When all of this is in place, you are sovereign. <strong>Regardless of whether you run on AWS, Azure, GCP, Hetzner, or your own hardware.</strong></p>

<p>And yes: that’s harder than an exit. An exit ends. Governance never ends. But that is exactly the point — sovereignty is not a project. It is an attitude.</p>

<figure class="article-fig" id="fig3-wrap">
<svg id="fig3-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 330" style="width:100%;height:auto;display:block;" aria-labelledby="fig3-en-title" role="img">
  <title id="fig3-en-title">Figure 3 — Three Uncomfortable Truths</title>

  <!-- Background -->
  <rect width="900" height="330" fill="#ecf2fb" rx="12" />

  <!-- Label + Title -->
  <rect x="18" y="18" width="104" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="70" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">FIGURE 3</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16" font-weight="700" fill="#0b1220">Three things that are true — even if they're uncomfortable.</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= CARD 1: RED ======= -->
  <rect x="16" y="84" width="274" height="218" rx="10" fill="#fff" stroke="#fca5a5" stroke-width="1.5" />
  <rect x="16" y="84" width="274" height="5" rx="5" fill="#ef4444" />
  <rect x="28" y="100" width="36" height="20" rx="6" fill="#fee2e2" />
  <text x="46" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#ef4444">01</text>
  <text x="28" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">Exit doesn't solve a</text>
  <text x="28" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">governance problem.</text>
  <line x1="28" y1="176" x2="276" y2="176" stroke="#f1f5f9" stroke-width="1" />
  <text x="28" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">An org without inventory</text>
  <text x="28" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">is just as unsovereign after</text>
  <text x="28" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">exit as before. Only the</text>
  <text x="28" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">provider changes.</text>
  <rect x="28" y="274" width="244" height="24" rx="6" fill="#ef4444" />
  <text x="150" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-001</text>

  <!-- ======= CARD 2: DARK ======= -->
  <rect x="314" y="84" width="272" height="218" rx="10" fill="#161b28" />
  <rect x="314" y="84" width="272" height="5" rx="5" fill="#0094ff" />
  <rect x="326" y="100" width="36" height="20" rx="6" fill="#0c2340" />
  <text x="344" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#60a5fa">02</text>
  <text x="326" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#f1f5f9">Visibility is more</text>
  <text x="326" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#f1f5f9">demanding than exit.</text>
  <line x1="326" y1="176" x2="572" y2="176" stroke="#2c3650" stroke-width="1" />
  <text x="326" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Controls must run.</text>
  <text x="326" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Inventory must be current.</text>
  <text x="326" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Decisions must be</text>
  <text x="326" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">documented. Always.</text>
  <rect x="326" y="274" width="246" height="24" rx="6" fill="#0094ff" />
  <text x="449" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-002</text>

  <!-- ======= CARD 3: GREEN ======= -->
  <rect x="610" y="84" width="274" height="218" rx="10" fill="#fff" stroke="#86efac" stroke-width="1.5" />
  <rect x="610" y="84" width="274" height="5" rx="5" fill="#22c55e" />
  <rect x="622" y="100" width="36" height="20" rx="6" fill="#f0fdf4" />
  <text x="640" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#16a34a">03</text>
  <text x="622" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">Sovereignty works</text>
  <text x="622" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">in AWS too.</text>
  <line x1="622" y1="176" x2="870" y2="176" stroke="#f1f5f9" stroke-width="1" />
  <text x="622" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">If you know what you have,</text>
  <text x="622" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">why you use it, and how to</text>
  <text x="622" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">exit — you are sovereign.</text>
  <text x="622" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">No matter where you run.</text>
  <rect x="622" y="274" width="248" height="24" rx="6" fill="#22c55e" />
  <text x="746" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-003</text>

  <!-- Credit -->
  <text x="450" y="320" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" fill="#9ba8bb">waf2p.dev · WAF++ Sovereign Pillar</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Fig. 3 — Three Uncomfortable Truths.</strong> Exit doesn't solve a governance problem. Visibility is more demanding than exit. And sovereignty works in AWS too — if you know what you have and why.</div>
  <button type="button" class="article-fig-dl" data-fig="fig3-svg" data-filename="wafpp-fig3-truths.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="when-exit-is-still-the-right-answer">When exit is still the right answer</h2>

<p>WAF++ does not fundamentally reject exit. There are legitimate scenarios:</p>

<p><strong>Exit makes sense</strong> when data localization laws explicitly exclude US companies as processors. When the organization has the operational maturity to permanently self-operate managed services. When a complete cost-benefit analysis supports the move.</p>

<p><strong>Exit is the wrong answer</strong> when it happens as a reaction to a headline. When no inventory exists. When no dedicated platform team is standing by. And when exit serves as a substitute for governance — as if a provider change were the same as a governance framework.</p>

<p>The decisive question is not: “Where do we run?” The question is: <strong>“Do we know what we’re doing — and can we prove it?”</strong></p>

<figure class="article-fig" id="fig4-wrap">
<svg id="fig4-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 482" style="width:100%;height:auto;display:block;" aria-labelledby="fig4-en-title" role="img">
  <title id="fig4-en-title">Figure 4 — Are you sovereign? Four honest questions.</title>

  <!-- Background -->
  <rect width="900" height="482" fill="#ecf2fb" rx="12" />

  <!-- Label + Title -->
  <rect x="18" y="18" width="104" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="70" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">FIGURE 4</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16.5" font-weight="700" fill="#0b1220">Are you sovereign? Four honest questions.</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- Row 1 -->
  <rect x="16" y="82" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="82" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="114" r="16" fill="#22c55e" />
  <text x="54" y="119.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="700" fill="#fff">✓</text>
  <text x="82" y="107" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#0b1220">Do you fully know which cloud resources you have?</text>
  <text x="82" y="128" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Inventory, dependency map, proprietary services all marked.</text>

  <!-- Row 2 -->
  <rect x="16" y="154" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="154" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="186" r="16" fill="#22c55e" />
  <text x="54" y="191.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="700" fill="#fff">✓</text>
  <text x="82" y="179" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#0b1220">Is every dependency a conscious decision?</text>
  <text x="82" y="200" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Not accidentally grown. Documented and justified.</text>

  <!-- Row 3 -->
  <rect x="16" y="226" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="226" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="258" r="16" fill="#22c55e" />
  <text x="54" y="263.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="700" fill="#fff">✓</text>
  <text x="82" y="251" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#0b1220">Can you show a regulator today exactly what you do with what?</text>
  <text x="82" y="272" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Controls running. Evidence exists. Audit-ready.</text>

  <!-- Row 4 -->
  <rect x="16" y="298" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="298" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="330" r="16" fill="#22c55e" />
  <text x="54" y="335.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="700" fill="#fff">✓</text>
  <text x="82" y="323" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#0b1220">Do you know how to exit in an emergency — and what it would cost?</text>
  <text x="82" y="344" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Exit scenario documented. Portability score known.</text>

  <!-- Row 5 (red X) -->
  <rect x="16" y="370" width="868" height="64" rx="8" fill="#fff7f7" stroke="#fca5a5" stroke-width="1" />
  <rect x="16" y="370" width="4" height="64" rx="2" fill="#ef4444" />
  <circle cx="54" cy="402" r="16" fill="#ef4444" />
  <text x="54" y="407.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="700" fill="#fff">✗</text>
  <text x="82" y="395" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#0b1220">Are you currently in the process of exiting AWS / Azure / GCP?</text>
  <text x="82" y="416" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#ef4444">That is a project — not the same as sovereignty.</text>

  <!-- Bottom -->
  <rect x="16" y="442" width="868" height="28" rx="6" fill="#0094ff" opacity="0.08" />
  <text x="450" y="460" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#5578a0">If you answered the first four with Yes: You are sovereign. Regardless of provider. · waf2p.dev</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Fig. 4 — Four Honest Questions.</strong> Do you fully know what you have? Are all dependencies conscious decisions? Can you show a regulator today what you do with what? Do you know how to exit? If yes: you are sovereign — no matter where you run.</div>
  <button type="button" class="article-fig-dl" data-fig="fig4-svg" data-filename="wafpp-fig4-questions.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="what-this-has-to-do-with-the-cloud-native-conference">What this has to do with the Cloud Native Conference</h2>

<p>On May 13th in Frankfurt, this exact question will land on stage. The panel discussion <em>“Does sovereignty eat cloud-native for breakfast?”</em> brings two positions head to head: the cloud-native enthusiast who says innovation needs the big hyperscalers, and the exit advocate who says their path was without alternative.</p>

<p>WAF++ is neither side. We are the framework that enables the community to <strong>answer this question for themselves</strong> — with evidence, not ideology.</p>

<p>In the Deep Dive (14:20) we’ll show live: What does a WAF++ control look like? How does Terraform run as a policy engine? How does an organization get from “no idea where we stand” to “fully auditable” in 90 days — without migrating a single workload?</p>

<p>If that interests you: come by. Bring your hardest questions.</p>

<script>
(function(){
  document.querySelectorAll('.article-fig-dl').forEach(function(btn){
    btn.addEventListener('click', function(){
      var svg = document.getElementById(this.dataset.fig);
      if (!svg) return;
      var src = '<?xml version="1.0" encoding="UTF-8"?>\n' + svg.outerHTML;
      var blob = new Blob([src], {type:'image/svg+xml;charset=utf-8'});
      var url = URL.createObjectURL(blob);
      var a = document.createElement('a');
      a.href = url; a.download = this.dataset.filename;
      document.body.appendChild(a); a.click();
      document.body.removeChild(a);
      URL.revokeObjectURL(url);
    });
  });
})();
</script>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="governance" /><category term="cloud" /><category term="open_source" /><summary type="html"><![CDATA[Sovereignty begins with visibility — not with migration. Those who flee the cloud without knowing what they have simply trade one dependency for more complexity. WAF++ explains why exit and sovereignty are two completely different things.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/exit-fig1-en.png" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/exit-fig1-en.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Exit ist Flucht. Nicht Freiheit.</title><link href="https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-ist-flucht/" rel="alternate" type="text/html" title="Exit ist Flucht. Nicht Freiheit." /><published>2026-04-13T00:00:00+00:00</published><updated>2026-04-13T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-ist-flucht</id><content type="html" xml:base="https://www.wombat-gov.dev/governance/cloud/open_source/2026/04/13/exit-ist-flucht/"><![CDATA[<p><img src="/assets/images/articles/exit-fig1-de.png" alt="Exit ist Flucht. Nicht Freiheit. — WAF++ zur Cloud Native Conference 2026" style="width:100%;height:auto;border-radius:12px;margin-bottom:32px;" /></p>

<p>Ich höre es überall. Und es stimmt nicht.</p>

<p>„Wir müssen aus AWS raus.” „Azure ist ein Sicherheitsrisiko.” „Solange wir bei einem US-Hyperscaler sind, sind wir nicht souverän.” Diese Sätze begegnen mir in Architecture Reviews, in Compliance-Gesprächen, auf Konferenzen. Sie klingen entschlossen. Sie fühlen sich richtig an.</p>

<p>Und sie sind trotzdem falsch.</p>

<p>Nicht weil der Wunsch nach Unabhängigkeit falsch wäre. Der ist richtig und wichtig. Sondern weil <strong>Exit und Souveränität zwei völlig verschiedene Dinge sind</strong> — die in unserer Branche ständig verwechselt werden.</p>

<blockquote>
  <p>„Wer nicht weiß, was er hat, kann nicht wissen, wovon er abhängig ist. Und wer das nicht weiß, trifft keine souveräne Entscheidung — egal wohin er migriert.”</p>

  <p><em>WAF++ Sovereign Pillar · SOV-010</em></p>
</blockquote>

<p>Exit ohne Sichtbarkeit ist kein Schritt in Richtung Souveränität. Es ist ein Schritt in Richtung einer neuen Abhängigkeit — die man diesmal selbst betreiben muss, ohne die Managed-Service-Tiefe eines Hyperscalers, ohne dedizierte Teams und ohne die Infrastruktur-Expertise, die sich diese Unternehmen über Jahrzehnte aufgebaut haben.</p>

<figure class="article-fig" id="fig1-wrap">
<svg id="fig1-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 420" style="width:100%;height:auto;display:block;" aria-labelledby="fig1-title" role="img">
  <title id="fig1-title">Abbildung 1 — Was passiert wirklich beim Exit?</title>
  <defs>
    <marker id="arr1" markerWidth="9" markerHeight="9" refX="7" refY="3.5" orient="auto">
      <path d="M0,0 L0,7 L9,3.5 z" fill="#ef4444" />
    </marker>
    <clipPath id="clip-left">
      <rect x="16" y="98" width="332" height="264" rx="10" />
    </clipPath>
    <clipPath id="clip-right">
      <rect x="552" y="98" width="332" height="264" rx="10" />
    </clipPath>
  </defs>

  <!-- Background -->
  <rect width="900" height="420" fill="#ecf2fb" rx="12" />

  <!-- Label -->
  <rect x="18" y="18" width="120" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="78" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">ABBILDUNG 1</text>

  <!-- Title -->
  <text x="18" y="74" font-family="Inter,system-ui,sans-serif" font-size="19" font-weight="700" fill="#0b1220">Was passiert wirklich beim Exit?</text>

  <!-- Divider -->
  <line x1="18" y1="88" x2="882" y2="88" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= LEFT PANEL: HEUTE ======= -->
  <rect x="16" y="98" width="332" height="264" rx="10" fill="#ffffff" stroke="#22c55e" stroke-width="2.5" />
  <!-- HEUTE badge -->
  <rect x="130" y="112" width="88" height="22" rx="11" fill="#f0fdf4" stroke="#86efac" stroke-width="1" />
  <text x="174" y="127.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.2" fill="#15803d">HEUTE</text>
  <!-- Title -->
  <text x="182" y="156" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="15.5" font-weight="700" fill="#0b1220">Governed Cloud</text>
  <!-- Box 1 -->
  <rect x="36" y="168" width="292" height="36" rx="7" fill="#0ea5e9" />
  <text x="182" y="190.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Datenbank (RDS)</text>
  <!-- Box 2 -->
  <rect x="36" y="212" width="292" height="36" rx="7" fill="#0284c7" />
  <text x="182" y="234.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Objekt-Speicher (S3)</text>
  <!-- Box 3 -->
  <rect x="36" y="256" width="292" height="36" rx="7" fill="#0369a1" />
  <text x="182" y="278.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">CDN (CloudFront)</text>
  <!-- Box 4 -->
  <rect x="36" y="300" width="292" height="36" rx="7" fill="#075985" />
  <text x="182" y="322.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="13" font-weight="600" fill="#fff">Identität &amp; Controls</text>
  <!-- Green footer (clipped) -->
  <g clip-path="url(#clip-left)">
    <rect x="16" y="342" width="332" height="20" fill="#f0fdf4" />
    <text x="182" y="356" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#16a34a">✓ 1 Team · klar · auditierbar</text>
  </g>
  <!-- Caption -->
  <text x="182" y="380" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="12.5" font-weight="700" fill="#16a34a">Klar. Kontrolliert. Souverän.</text>

  <!-- ======= MIDDLE: EXIT ARROW ======= -->
  <!-- EXIT pill -->
  <rect x="381" y="188" width="78" height="24" rx="12" fill="#fee2e2" stroke="#fca5a5" stroke-width="1" />
  <text x="420" y="204.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="700" fill="#dc2626">EXIT</text>
  <!-- Arrow -->
  <line x1="356" y1="230" x2="524" y2="230" stroke="#ef4444" stroke-width="3.5" marker-end="url(#arr1)" />
  <!-- Label -->
  <text x="420" y="258" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="500" fill="#dc2626">= Flucht in</text>
  <text x="420" y="272" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10.5" font-weight="500" fill="#dc2626">Komplexität</text>

  <!-- ======= RIGHT PANEL: NACH DEM EXIT ======= -->
  <rect x="552" y="98" width="332" height="264" rx="10" fill="#161b28" stroke="#ef4444" stroke-width="2" />
  <!-- Badge -->
  <rect x="614" y="112" width="148" height="22" rx="11" fill="#7f1d1d" />
  <text x="688" y="127.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#fca5a5">NACH DEM EXIT</text>
  <!-- Title -->
  <text x="718" y="156" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="15.5" font-weight="700" fill="#f1f5f9">Selbst betreiben</text>
  <!-- 3×3 grid -->
  <!-- Row 1 -->
  <rect x="566" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">PostgreSQL</text>
  <text x="612" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">HA</text>
  <rect x="664" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Ceph</text>
  <text x="710" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Cluster</text>
  <rect x="762" y="168" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="187.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">CDN</text>
  <text x="808" y="200.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">(selbst)</text>
  <!-- Row 2 -->
  <rect x="566" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">PKI &amp;</text>
  <text x="612" y="252.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Certs</text>
  <rect x="664" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Backup-</text>
  <text x="710" y="252.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Mgmt</text>
  <rect x="762" y="220" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="239.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Monitoring</text>
  <!-- Row 3 -->
  <rect x="566" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="612" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Auth /</text>
  <text x="612" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">IdP</text>
  <rect x="664" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="710" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Patch-</text>
  <text x="710" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Mgmt</text>
  <rect x="762" y="272" width="92" height="44" rx="6" fill="#1e263a" stroke="#2c3650" stroke-width="1" />
  <text x="808" y="291.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">On-Call</text>
  <text x="808" y="304.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="600" fill="#94a3b8">Rota</text>
  <!-- Red footer (clipped) -->
  <g clip-path="url(#clip-right)">
    <rect x="552" y="342" width="332" height="20" fill="#7f1d1d" />
    <text x="718" y="356" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#fca5a5">⚠ Wer ist verantwortlich?</text>
  </g>
  <!-- Caption -->
  <text x="718" y="380" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="12.5" font-weight="700" fill="#ef4444">Komplex. Unklar. Teuer.</text>

  <!-- Credit -->
  <text x="450" y="410" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" fill="#9ba8bb">waf2p.dev · WAF++ Sovereign Pillar</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Abb. 1 — Exit ≠ Freiheit.</strong> Was heute eine ordentliche Governed Cloud ist, wird nach einem ungeplanten Exit zu einem Flickenteppich aus selbst-betriebenen Diensten. RDS, S3, CloudFront, IAM — alles muss ersetzt, gepatcht, überwacht und verantwortet werden. Von wem eigentlich?</div>
  <button type="button" class="article-fig-dl" data-fig="fig1-svg" data-filename="wafpp-abb1-exit-freiheit.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="was-beim-exit-wirklich-passiert">Was beim Exit wirklich passiert</h2>

<p>Seien wir konkret. Technisch ist Exit möglich — das ist unbestritten. Kubernetes läuft überall. Terraform abstrahiert Anbieter. Das Open-Source-Ökosystem mit OpenStack, Ceph und Cilium ist ausgereift.</p>

<p>Aber wenn du aus RDS aussteigst, muss jemand PostgreSQL-HA selbst betreiben. Failover, Backups, Security-Patches — wer macht das um 3 Uhr nachts? Wenn du aus S3 aussteigst, brauchst du ein Objektspeicher-Team. Wenn du aus CloudFront aussteigst, baust du eigene CDN-Logik. Wenn du aus IAM aussteigst, brauchst du eine eigene PKI.</p>

<p>Das sind keine theoretischen Probleme. Das sind operative Realitäten, die genau dann sichtbar werden, wenn etwas kaputtgeht — und dann meistens zu spät.</p>

<blockquote>
  <p><strong>Aus der Praxis:</strong> Eine europäische Behörde arbeitete 3 Jahre an einem AWS-Exit. Danach stellte sie fest: 60 % der ursprünglichen Compliance-Anforderungen waren durch die neue On-Premises-Lösung immer noch nicht erfüllt. Das Problem war nie der Anbieter. Es war das fehlende Governance-Framework — das auch nach dem Exit fehlte.</p>
</blockquote>

<p>Das ist kein Einzelfall. Es ist das Muster. Ohne Inventar, ohne Controls und ohne dokumentierte Abhängigkeiten tauscht man eine bekannte Abhängigkeit gegen mehrere unbekannte. Das ist nicht mehr Souveränität — das ist mehr Komplexität mit weniger Überblick.</p>

<p><strong>Souveränität ist keine Frage des Anbieters. Es ist eine Frage der Sichtbarkeit.</strong></p>

<figure class="article-fig" id="fig2-wrap">
<svg id="fig2-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 448" style="width:100%;height:auto;display:block;" aria-labelledby="fig2-title" role="img">
  <title id="fig2-title">Abbildung 2 — Zwei Verständnisse von Souveränität</title>

  <!-- Background -->
  <rect width="900" height="448" fill="#ecf2fb" rx="12" />

  <!-- Label -->
  <rect x="18" y="18" width="120" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="78" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">ABBILDUNG 2</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16.5" font-weight="700" fill="#0b1220">Zwei Verständnisse von Souveränität</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= LEFT: EXIT = FREIHEIT (IRRTUM) ======= -->
  <rect x="16" y="78" width="378" height="326" rx="10" fill="#1e263a" />
  <rect x="88" y="96" width="210" height="22" rx="11" fill="#374151" />
  <text x="193" y="111.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#94a3b8">HÄUFIGES MISSVERSTÄNDNIS</text>
  <text x="205" y="158" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="28" font-weight="800" fill="#f87171">Exit</text>
  <text x="205" y="188" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="18" font-weight="700" fill="#e2e8f0">= Freiheit</text>
  <line x1="36" y1="206" x2="374" y2="206" stroke="#2c3650" stroke-width="1" />
  <text x="52" y="232" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Anderen Anbieter wählen</text>
  <text x="52" y="260" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Vertrag kündigen</text>
  <text x="52" y="288" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">→  Fertig. Souverän.</text>
  <text x="36" y="318" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.9" fill="#64748b">ERGEBNIS IN DER PRAXIS:</text>
  <circle cx="48" cy="338" r="4.5" fill="#ef4444" />
  <text x="60" y="342.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#f87171">Kostenschock durch Eigen-Betrieb</text>
  <circle cx="48" cy="364" r="4.5" fill="#ef4444" />
  <text x="60" y="368.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#f87171">Unerwartete Abhängigkeiten</text>

  <!-- ======= DIVIDER ======= -->
  <text x="450" y="172" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.8" fill="#0094ff">WAF++</text>
  <text x="450" y="190" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="22" fill="#0094ff">→</text>
  <text x="450" y="210" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.8" fill="#0094ff">BESSER</text>

  <!-- ======= RIGHT: SICHTBARKEIT = FREIHEIT (WAF++) ======= -->
  <rect x="506" y="78" width="378" height="326" rx="10" fill="#0b1020" />
  <rect x="506" y="78" width="378" height="4" rx="2" fill="#0094ff" />
  <rect x="586" y="96" width="138" height="22" rx="11" fill="#0c2340" />
  <text x="655" y="111.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="0.8" fill="#60a5fa">WAF++ SICHTBARKEIT</text>
  <text x="695" y="158" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="28" font-weight="800" fill="#f1f5f9">Sichtbarkeit</text>
  <text x="695" y="188" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="18" font-weight="700" fill="#0094ff">= Freiheit</text>
  <line x1="526" y1="206" x2="864" y2="206" stroke="#1e2d42" stroke-width="1" />
  <text x="542" y="232" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Inventar: was du hast</text>
  <text x="542" y="260" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Abhängigkeiten dokumentieren</text>
  <text x="542" y="288" font-family="Inter,system-ui,sans-serif" font-size="13" fill="#94a3b8">✓  Controls definieren &amp; messen</text>
  <text x="526" y="318" font-family="Inter,system-ui,sans-serif" font-size="9.5" font-weight="700" letter-spacing="0.9" fill="#64748b">ERGEBNIS:</text>
  <circle cx="538" cy="338" r="4.5" fill="#22c55e" />
  <text x="550" y="342.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#86efac">Exit jederzeit möglich</text>
  <circle cx="538" cy="364" r="4.5" fill="#22c55e" />
  <text x="550" y="368.5" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#86efac">Souverän — egal beim welchem Anbieter</text>

  <!-- Bottom statement -->
  <rect x="16" y="412" width="868" height="24" rx="10" fill="#0b1020" />
  <text x="450" y="428" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#60a5fa">Souveränität ist keine Frage des Anbieters. Es ist eine Frage der Sichtbarkeit.</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Abb. 2 — Mythos vs. Realität.</strong> Was die meisten glauben: Anbieter wechseln = souverän. Was WAF++ zeigt: Sichtbarkeit = souverän. Mit vollem Inventar und Controls ist Exit jederzeit möglich — aber kein Exit nötig, um Souveränität zu erreichen.</div>
  <button type="button" class="article-fig-dl" data-fig="fig2-svg" data-filename="wafpp-abb2-souveraenitaet.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="was-souveränität-wirklich-bedeutet">Was Souveränität wirklich bedeutet</h2>

<p>Hier ist die These, die WAF++ vertritt — und sie ist unbequem, weil sie mehr Arbeit bedeutet als ein Migrations-Projekt:</p>

<p><strong>Souveränität ist eine kontinuierliche Systemeigenschaft, keine Destination.</strong></p>

<p>Sie entsteht nicht dadurch, dass du einen Vertrag kündigst. Sie entsteht dadurch, dass du zu jedem Zeitpunkt weißt, was du hast, warum du es nutzt, wie du davon abhängig bist — und wie du rauskommst, wenn du musst.</p>

<p>Das bedeutet: <strong>Inventar</strong> — jede Ressource, jede Abhängigkeit, jeder proprietäre Dienst dokumentiert. <strong>Controls</strong> — Governance-Anforderungen als YAML definiert, maschinell geprüft, versioniert. <strong>Portabilität als Entscheidung</strong> — nicht jeder Workload muss portierbar sein, aber jede Entscheidung darüber muss bewusst sein. Und <strong>öffentliche Transparenz</strong> — Entscheidungen, Votes, Roadmap-Änderungen sichtbar für alle.</p>

<p>Wenn das alles vorhanden ist, bist du souverän. <strong>Egal ob du bei AWS, Azure, GCP, Hetzner oder auf eigener Hardware läufst.</strong></p>

<p>Und ja: Das ist anstrengender als ein Exit. Ein Exit endet. Governance endet nie. Aber genau das ist der Punkt — Souveränität ist kein Projekt. Es ist eine Haltung.</p>

<figure class="article-fig" id="fig3-wrap">
<svg id="fig3-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 330" style="width:100%;height:auto;display:block;" aria-labelledby="fig3-title" role="img">
  <title id="fig3-title">Abbildung 3 — Drei unbequeme Wahrheiten</title>

  <!-- Background -->
  <rect width="900" height="330" fill="#ecf2fb" rx="12" />

  <!-- Label + Title -->
  <rect x="18" y="18" width="120" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="78" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">ABBILDUNG 3</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16" font-weight="700" fill="#0b1220">Drei Dinge, die wahr sind — auch wenn sie unbequem sind.</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= CARD 1: ROT ======= -->
  <rect x="16" y="84" width="274" height="218" rx="10" fill="#fff" stroke="#fca5a5" stroke-width="1.5" />
  <rect x="16" y="84" width="274" height="5" rx="5" fill="#ef4444" />
  <!-- Badge -->
  <rect x="28" y="100" width="36" height="20" rx="6" fill="#fee2e2" />
  <text x="46" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#ef4444">01</text>
  <!-- Title -->
  <text x="28" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">Exit löst kein</text>
  <text x="28" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">Governance-Problem.</text>
  <!-- Divider -->
  <line x1="28" y1="176" x2="276" y2="176" stroke="#f1f5f9" stroke-width="1" />
  <!-- Body text -->
  <text x="28" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Eine Org ohne Inventar ist</text>
  <text x="28" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">nach dem Exit genauso</text>
  <text x="28" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">unsouverän wie davor.</text>
  <text x="28" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Nur der Anbieter wechselt.</text>
  <!-- SOV tag -->
  <rect x="28" y="274" width="244" height="24" rx="6" fill="#ef4444" />
  <text x="150" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-001</text>

  <!-- ======= CARD 2: DUNKEL ======= -->
  <rect x="314" y="84" width="272" height="218" rx="10" fill="#161b28" />
  <rect x="314" y="84" width="272" height="5" rx="5" fill="#0094ff" />
  <!-- Badge -->
  <rect x="326" y="100" width="36" height="20" rx="6" fill="#0c2340" />
  <text x="344" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#60a5fa">02</text>
  <!-- Title -->
  <text x="326" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#f1f5f9">Sichtbarkeit ist</text>
  <text x="326" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#f1f5f9">anspruchsvoller als Exit.</text>
  <!-- Divider -->
  <line x1="326" y1="176" x2="572" y2="176" stroke="#2c3650" stroke-width="1" />
  <!-- Body text -->
  <text x="326" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Controls müssen laufen.</text>
  <text x="326" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Inventar muss aktuell sein.</text>
  <text x="326" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">Entscheidungen müssen</text>
  <text x="326" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#94a3b8">dokumentiert werden. Immer.</text>
  <!-- SOV tag -->
  <rect x="326" y="274" width="246" height="24" rx="6" fill="#0094ff" />
  <text x="449" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-002</text>

  <!-- ======= CARD 3: GRÜN ======= -->
  <rect x="610" y="84" width="274" height="218" rx="10" fill="#fff" stroke="#86efac" stroke-width="1.5" />
  <rect x="610" y="84" width="274" height="5" rx="5" fill="#22c55e" />
  <!-- Badge -->
  <rect x="622" y="100" width="36" height="20" rx="6" fill="#f0fdf4" />
  <text x="640" y="114.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="700" fill="#16a34a">03</text>
  <!-- Title -->
  <text x="622" y="142" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">Souveränität</text>
  <text x="622" y="162" font-family="Inter,system-ui,sans-serif" font-size="14.5" font-weight="700" fill="#0b1220">funktioniert auch in AWS.</text>
  <!-- Divider -->
  <line x1="622" y1="176" x2="870" y2="176" stroke="#f1f5f9" stroke-width="1" />
  <!-- Body text -->
  <text x="622" y="198" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">Wenn du weißt was du hast,</text>
  <text x="622" y="215" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">warum du es nutzt, und wie</text>
  <text x="622" y="232" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">du rauskommst — bist du</text>
  <text x="622" y="249" font-family="Inter,system-ui,sans-serif" font-size="11.5" fill="#64748b">souverän. Egal wo du läufst.</text>
  <!-- SOV tag -->
  <rect x="622" y="274" width="248" height="24" rx="6" fill="#22c55e" />
  <text x="746" y="290" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11.5" font-weight="700" letter-spacing="0.6" fill="#fff">SOV-003</text>

  <!-- Credit -->
  <text x="450" y="320" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="9.5" fill="#9ba8bb">waf2p.dev · WAF++ Sovereign Pillar</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Abb. 3 — Drei unbequeme Wahrheiten.</strong> Exit löst kein Governance-Problem. Sichtbarkeit ist anspruchsvoller als Exit. Und Souveränität funktioniert auch in AWS — wenn du weißt, was du hast und warum.</div>
  <button type="button" class="article-fig-dl" data-fig="fig3-svg" data-filename="wafpp-abb3-wahrheiten.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="wann-exit-trotzdem-richtig-ist">Wann Exit trotzdem richtig ist</h2>

<p>WAF++ lehnt Exit nicht grundsätzlich ab. Es gibt legitime Szenarien:</p>

<p><strong>Exit macht Sinn</strong>, wenn Datenlokalisierungsgesetze US-Unternehmen als Processor explizit ausschließen. Wenn die eigene Organisation die operative Reife hat, Managed Services dauerhaft selbst zu betreiben. Wenn eine vollständige Kosten-Nutzen-Analyse das unterstützt.</p>

<p><strong>Exit ist die falsche Antwort</strong>, wenn er als Reaktion auf eine Schlagzeile passiert. Wenn kein Inventar existiert. Wenn kein dediziertes Plattform-Team bereitsteht. Und wenn Exit als Ersatz für Governance dient — als wäre ein Anbieter-Wechsel dasselbe wie ein Governance-Framework.</p>

<p>Die entscheidende Frage ist nicht: „Wo laufen wir?” Die Frage ist: <strong>„Wissen wir, was wir tun — und können wir es beweisen?”</strong></p>

<figure class="article-fig" id="fig4-wrap">
<svg id="fig4-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 482" style="width:100%;height:auto;display:block;" aria-labelledby="fig4-title" role="img">
  <title id="fig4-title">Abbildung 4 — Bist du souverän? Vier ehrliche Fragen.</title>

  <!-- Background -->
  <rect width="900" height="482" fill="#ecf2fb" rx="12" />

  <!-- Label + Title -->
  <rect x="18" y="18" width="120" height="23" rx="11.5" fill="#d6e4f4" />
  <text x="78" y="33.5" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="10" font-weight="700" letter-spacing="1.3" fill="#5578a0">ABBILDUNG 4</text>
  <text x="18" y="64" font-family="Inter,system-ui,sans-serif" font-size="16.5" font-weight="700" fill="#0b1220">Bist du souverän? Vier ehrliche Fragen.</text>
  <line x1="18" y1="74" x2="882" y2="74" stroke="#c3d5eb" stroke-width="1" />

  <!-- ======= ROW 1 ======= -->
  <rect x="16" y="82" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="82" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="114" r="16" fill="#22c55e" />
  <text x="54" y="120" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" fill="#fff">✓</text>
  <text x="84" y="107" font-family="Inter,system-ui,sans-serif" font-size="13.5" font-weight="600" fill="#0b1220">Weißt du, welche Cloud-Ressourcen du hast — vollständig?</text>
  <text x="84" y="128" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#64748b">Inventar, Dependency-Map, proprietäre Services alle gekennzeichnet.</text>

  <!-- ======= ROW 2 ======= -->
  <rect x="16" y="154" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="154" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="186" r="16" fill="#22c55e" />
  <text x="54" y="192" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" fill="#fff">✓</text>
  <text x="84" y="179" font-family="Inter,system-ui,sans-serif" font-size="13.5" font-weight="600" fill="#0b1220">Ist jede Abhängigkeit eine bewusste Entscheidung?</text>
  <text x="84" y="200" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#64748b">Nicht zufällig gewachsen. Dokumentiert und begründet.</text>

  <!-- ======= ROW 3 ======= -->
  <rect x="16" y="226" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="226" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="258" r="16" fill="#22c55e" />
  <text x="54" y="264" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" fill="#fff">✓</text>
  <text x="84" y="251" font-family="Inter,system-ui,sans-serif" font-size="13.5" font-weight="600" fill="#0b1220">Kannst du einem Regulator heute zeigen, was du womit machst?</text>
  <text x="84" y="272" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#64748b">Controls laufen. Evidence existiert. Audit-ready.</text>

  <!-- ======= ROW 4 ======= -->
  <rect x="16" y="298" width="868" height="64" rx="8" fill="#fff" stroke="#e2e8f0" stroke-width="1" />
  <rect x="16" y="298" width="4" height="64" rx="2" fill="#0094ff" />
  <circle cx="54" cy="330" r="16" fill="#22c55e" />
  <text x="54" y="336" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" fill="#fff">✓</text>
  <text x="84" y="323" font-family="Inter,system-ui,sans-serif" font-size="13.5" font-weight="600" fill="#0b1220">Weißt du, wie du im Notfall rauskommst — und was es kostet?</text>
  <text x="84" y="344" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#64748b">Exit-Szenario dokumentiert. Portability-Score bekannt.</text>

  <!-- ======= ROW 5 (red X) ======= -->
  <rect x="16" y="370" width="868" height="64" rx="8" fill="#fff7f7" stroke="#fca5a5" stroke-width="1" />
  <rect x="16" y="370" width="4" height="64" rx="2" fill="#ef4444" />
  <circle cx="54" cy="402" r="16" fill="#ef4444" />
  <text x="54" y="408" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="14" font-weight="700" fill="#fff">✗</text>
  <text x="84" y="395" font-family="Inter,system-ui,sans-serif" font-size="13.5" font-weight="600" fill="#0b1220">Bist du gerade dabei, aus AWS / Azure / GCP auszusteigen?</text>
  <text x="84" y="416" font-family="Inter,system-ui,sans-serif" font-size="12" fill="#ef4444">Das ist ein Projekt — nicht dasselbe wie Souveränität.</text>

  <!-- Bottom statement -->
  <rect x="16" y="442" width="868" height="28" rx="8" fill="#0b1020" />
  <text x="450" y="460" text-anchor="middle" font-family="Inter,system-ui,sans-serif" font-size="11" font-weight="600" fill="#60a5fa">Wenn du die ersten vier mit Ja beantwortest: Du bist souverän. Egal bei welchem Anbieter. · waf2p.dev</text>
</svg>
<figcaption class="article-fig-cap">
  <div><strong>Abb. 4 — Vier ehrliche Fragen.</strong> Weißt du vollständig, was du hast? Sind alle Abhängigkeiten bewusste Entscheidungen? Kannst du einem Regulator heute zeigen, was du womit machst? Weißt du, wie du rauskommst? Wenn ja: Du bist souverän — egal wo du läufst.</div>
  <button type="button" class="article-fig-dl" data-fig="fig4-svg" data-filename="wafpp-abb4-fragen.svg">↓ SVG</button>
</figcaption>
</figure>

<h2 id="was-das-mit-der-cloud-native-conference-zu-tun-hat">Was das mit der Cloud Native Conference zu tun hat</h2>

<p>Am 13. Mai in Frankfurt wird genau diese Frage auf der Bühne landen. Das Streitgespräch <em>„Frisst Souveränität Cloud-Native zum Frühstück?”</em> bringt zwei Positionen direkt gegeneinander: Den Cloud-Native-Enthusiasten, der sagt, Innovation braucht die großen Hyperscaler. Den Aussteiger, der sagt, sein Weg war alternativlos.</p>

<p>WAF++ ist keine der beiden Seiten. Wir sind das Framework, das die Community in die Lage versetzt, <strong>diese Frage für sich selbst zu beantworten</strong> — mit Evidence, nicht mit Ideologie.</p>

<p>Im Deep Dive (14:20) zeigen wir live: Wie sieht ein WAF++ Control aus? Wie läuft Terraform als Policy-Engine? Wie kommt eine Organisation in 90 Tagen von „keine Ahnung wo wir stehen” zu „vollständig auditierbar” — ohne einen einzigen Workload zu migrieren?</p>

<p>Wenn dich das interessiert: Komm vorbei. Bring deine schwersten Fragen mit.</p>

<script>
(function(){
  document.querySelectorAll('.article-fig-dl').forEach(function(btn){
    btn.addEventListener('click', function(){
      var svg = document.getElementById(this.dataset.fig);
      if (!svg) return;
      var src = '<?xml version="1.0" encoding="UTF-8"?>\n' + svg.outerHTML;
      var blob = new Blob([src], {type:'image/svg+xml;charset=utf-8'});
      var url = URL.createObjectURL(blob);
      var a = document.createElement('a');
      a.href = url; a.download = this.dataset.filename;
      document.body.appendChild(a); a.click();
      document.body.removeChild(a);
      URL.revokeObjectURL(url);
    });
  });
})();
</script>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="governance" /><category term="cloud" /><category term="open_source" /><summary type="html"><![CDATA[Souveränität beginnt mit Sichtbarkeit — nicht mit Migration. Wer aus der Cloud flieht, ohne zu wissen was er hat, tauscht eine Abhängigkeit gegen mehr Komplexität. WAF++ erklärt, warum Exit und Souveränität zwei verschiedene Dinge sind.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/exit-fig1-de.png" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/exit-fig1-de.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">60 Days to Frankfurt: Why WAF++ Might Be the Most Important Cloud Framework You’ve Never Heard Of</title><link href="https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-days-to-frankfurt/" rel="alternate" type="text/html" title="60 Days to Frankfurt: Why WAF++ Might Be the Most Important Cloud Framework You’ve Never Heard Of" /><published>2026-03-14T00:00:00+00:00</published><updated>2026-03-14T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-days-to-frankfurt</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-days-to-frankfurt/"><![CDATA[<p>There is a specific kind of frustration that every seasoned cloud architect knows. You sit in a room, reviewing an infrastructure design. The work looks solid on the surface — multi-region, auto-scaled, properly tagged. But ask the team a direct question — why this provider, why this region, what happens when we need to exit — and the answers get vague. Not because the engineers are bad. Because the framework they used to make those decisions never asked those questions in the first place.</p>

<p>WAF++ was built for exactly that moment.</p>

<h2 id="the-gap-the-big-frameworks-leave-open">The Gap the Big Frameworks Leave Open</h2>

<p>AWS Well-Architected, Azure CAF, GCP Framework — these are genuinely useful tools. They provide concrete, product-aligned guidance within their own ecosystems. But they share a structural limitation: they are built by vendors, for vendors. Vendor-neutrality, exit capability, regulatory sovereignty — these concerns are either absent or treated as afterthoughts.</p>

<p>CNCF gets closer. Its governance model, working group structure, and commitment to open standards make it the spiritual ancestor of WAF++. But CNCF does not offer a single, consistent assessment framework. There is no scoring model. No evidence-based audit trail. No way to take a platform team through a structured review that ends with traceable, defensible decisions.</p>

<blockquote>
  <p><strong>Traceability instead of gut feeling. Criteria instead of buzzwords.</strong></p>
</blockquote>

<p>That is the gap WAF++ fills. Not by replacing AWS WA or CNCF — but by sitting above them as a vendor-neutral assessment lens. A way to structure decisions, document trade-offs, and make governance an engineering artifact, not a slide deck.</p>

<h2 id="seven-pillars-two-live-one-vision">Seven Pillars, Two Live, One Vision</h2>

<p>WAF++ structures cloud architecture evaluation across seven pillars: Security, Cost Optimization, Performance Efficiency, Reliability, Operational Excellence, Sustainability, and Sovereign. Each pillar is designed to ask the questions that provider frameworks skip — including guidance on evidence artifacts, scoring logic, and regulatory alignment.</p>

<p>As of today, two pillars are fully active:</p>

<ul>
  <li><strong>Pillar 2 — Cost Optimization:</strong> FinOps principles, cost transparency, budget guardrails, and right-sizing guidance.</li>
  <li><strong>Pillar 7 — Sovereign:</strong> Data sovereignty, vendor lock-in, exit capability, and regulatory compliance. The pillar that no major provider framework treats as first-class.</li>
</ul>

<p>The remaining five pillars are planned and in varying stages of design. The project is intentionally lean: ship what is real, not what looks complete on a roadmap slide.</p>

<p>The governance model is documented. The Antora-based technical documentation is partially built. And on May 12th — one day before the Cloud Native Conference 2026 in Frankfurt — WAF++ version 1 of both the marketing platform and the documentation goes live.</p>

<h2 id="static-first-deterministic-and-deliberately-constrained">Static-First, Deterministic, and Deliberately Constrained</h2>

<p>One of the more interesting engineering decisions in WAF++ is the platform itself. The website and documentation are built on a strict static-first architecture: Jekyll for the public web, Antora for technical documentation, GitHub Pages for hosting. No runtime API dependencies. No plugin magic. No dynamic rendering.</p>

<p>This is not a cost-cutting measure — it is a philosophical choice. Every build is reproducible. Every page is auditable. GitHub contributor data is fetched at build time and cached as local JSON. SEO metadata is defined explicitly in frontmatter on every article, never inferred from theme defaults.</p>

<p>The principle runs throughout: explicit configuration over implicit magic. It is the same principle that drives the governance framework itself — if you cannot show your work, your decision is not traceable.</p>

<p>Multilingual support (English and German) follows the same logic. No i18n plugin that adds build complexity and unpredictable caching. Instead: a clean parallel structure under <code class="language-plaintext highlighter-rouge">/de/</code> that gives full SEO control and deterministic output on every build.</p>

<h2 id="yaml-as-a-control-language">YAML as a Control Language</h2>

<p>The governance framework at the heart of WAF++ is defined declaratively in YAML. Each control has an ID, a pillar, a severity level, and a set of typed checks that can be validated by a policy engine — currently Terraform.</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">id</span><span class="pi">:</span> <span class="s">SOV-010</span>
<span class="na">pillar</span><span class="pi">:</span> <span class="s">sovereign</span>
<span class="na">severity</span><span class="pi">:</span> <span class="s">high</span>
<span class="na">type</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">governance</span><span class="pi">,</span> <span class="nv">configuration</span><span class="pi">]</span>
<span class="na">checks</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="na">id</span><span class="pi">:</span> <span class="s">tf.region_pinned</span>
    <span class="na">engine</span><span class="pi">:</span> <span class="s">terraform</span>
</code></pre></div></div>

<p>This is what separates WAF++ from a collection of best-practice documents. The controls are machine-checkable. Evidence types are typed — architecture diagrams, IaC, config exports. The engine abstraction means you can validate against multiple tools without rewriting the control definition.</p>

<p>The community governance model mirrors this transparency: a Technical Steering Committee, Maintainer teams, Working Groups, and an RFC process. Every decision is documented publicly. Every role has a defined term and clear responsibilities.</p>

<p><img src="https://waf2p.dev/assets/images/articles/cloud_native_conference_waf2p.png" alt="WAF++ at Cloud Native Conference 2026 Frankfurt" />
<em>Cloud Native Conference 2026 · Frankfurt · May 13, 2026</em></p>

<h2 id="frankfurt-is-a-starting-line-not-a-finish">Frankfurt Is a Starting Line, Not a Finish</h2>

<p>The Cloud Native Conference 2026 in Frankfurt — May 13th — lands one day after the WAF++ v1 release. That timing is not accidental. The conference is the first major moment for WAF++ to meet the community it was built for: platform engineers, cloud architects, and the teams who actually have to make governance decisions at scale.</p>

<p>The goal is not to arrive with a polished product and a demo. The goal is to arrive with something real, open, and ready for review. The pillars are not finished — and that is the point. WAF++ is designed to be built in public, shaped by the people who use it.</p>

<blockquote>
  <p><strong>“If you think governance is someone else’s problem, you haven’t been the one explaining a $400,000 egress bill to a CFO.”</strong></p>
</blockquote>

<p>Between now and May 12th, the team is focused on three things: finalizing the v1 documentation structure in Antora, completing the Sovereign pillar reference content, and hardening the governance YAML controls to the point where they can be used as a real audit baseline.</p>

<p>If you are attending Cloud Native Conference 2026 in Frankfurt, the WAF++ team will be there. Not with a vendor booth and branded swag — but with working software, open RFCs, and a genuine interest in hearing what problems you are actually trying to solve.</p>

<h2 id="the-cloud-isnt-getting-simpler">The Cloud Isn’t Getting Simpler</h2>

<p>Multi-cloud is not a future state anymore — it is operational reality for most organizations above a certain size. And as the environment grows more complex, the gap between “we have a framework” and “we can trace our decisions” grows wider.</p>

<p>Regulatory pressure is accelerating this. GDPR was a starting point. DORA, NIS2, and the evolving landscape of data residency requirements are making sovereignty a first-class technical concern — not just a legal one. ISO 27001 and NIST provide strong compliance foundations, but they were not designed for day-to-day cloud architecture decisions.</p>

<p>WAF++ is not a compliance tool. It is an engineering tool that makes compliance tractable. It gives platform teams the shared language, scoring model, and evidence framework to answer the hard questions before an auditor asks them.</p>

<h2 id="everything-is-in-the-open">Everything Is in the Open</h2>

<p>WAF++ is open source. The framework, the controls, the governance model, and the platform are all public. Contributions are not just welcome — they are the point. Working Groups are forming around each pillar. The RFC process is live.</p>

<p>If you have operated cloud infrastructure at scale, dealt with a vendor lock-in situation, tried to explain cost anomalies to non-technical stakeholders, or built a platform that needed to be compliant across multiple regulatory regimes — you have knowledge that belongs in WAF++.</p>

<hr />

<p><strong>Website:</strong> <a href="https://waf2p.dev">waf2p.dev</a>
<strong>Repository:</strong> <a href="https://github.com/waf2p">github.com/waf2p</a>
<strong>Documentation:</strong> Live May 12, 2026
<strong>Cloud Native Conference 2026, Frankfurt — May 13, 2026</strong></p>

<hr />

<p><em>WAF++ is an open-source initiative operating under the Maintainer model, with a strategic orientation toward Foundation or CNCF-adjacent structures. Code: Apache 2.0 · Documentation &amp; Content: CC BY 4.0</em></p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><category term="open_source" /><category term="governance" /><summary type="html"><![CDATA[With 60 days to Cloud Native Conference 2026, WAF++ — the vendor-neutral, open-source cloud architecture framework — is approaching its v1 release. Here's why it matters.]]></summary></entry><entry xml:lang="de"><title type="html">60 Tage bis Frankfurt: Warum WAF++ das wichtigste Cloud-Framework sein könnte, von dem du noch nie gehört hast</title><link href="https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-tage-bis-frankfurt/" rel="alternate" type="text/html" title="60 Tage bis Frankfurt: Warum WAF++ das wichtigste Cloud-Framework sein könnte, von dem du noch nie gehört hast" /><published>2026-03-14T00:00:00+00:00</published><updated>2026-03-14T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-tage-bis-frankfurt</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/open_source/governance/2026/03/14/60-tage-bis-frankfurt/"><![CDATA[<p>Es gibt eine ganz bestimmte Art von Frustration, die jeder erfahrene Cloud-Architekt kennt. Man sitzt in einem Raum und reviewt ein Infrastrukturdesign. Die Arbeit sieht auf den ersten Blick solide aus — multi-region, auto-skaliert, ordentlich getaggt. Aber stellt man dem Team eine direkte Frage — warum dieser Provider, warum diese Region, was passiert, wenn wir migrieren müssen — werden die Antworten vage. Nicht weil die Engineers schlecht sind. Sondern weil das Framework, das sie für diese Entscheidungen genutzt haben, genau diese Fragen nie gestellt hat.</p>

<p>WAF++ wurde für genau diesen Moment gebaut.</p>

<h2 id="die-lücke-die-die-großen-frameworks-offenlassen">Die Lücke, die die großen Frameworks offenlassen</h2>

<p>AWS Well-Architected, Azure CAF, GCP Framework — das sind echte, nützliche Werkzeuge. Sie bieten konkrete, produktnahe Orientierung innerhalb ihrer eigenen Ökosysteme. Aber sie teilen eine strukturelle Einschränkung: Sie wurden von Herstellern für Hersteller gebaut. Vendor-Neutralität, Exit-Fähigkeit, regulatorische Souveränität — diese Themen fehlen entweder ganz oder werden als Randnotiz behandelt.</p>

<p>CNCF kommt dem näher. Das Governance-Modell, die Working-Group-Struktur und das Bekenntnis zu offenen Standards machen CNCF zum geistigen Vorläufer von WAF++. Aber CNCF bietet kein einheitliches, konsistentes Assessment-Framework. Es gibt kein Scoring-Modell. Keine nachvollziehbare Beweiskette. Keinen strukturierten Review-Prozess, der mit nachweisbaren, verteidigbaren Entscheidungen endet.</p>

<blockquote>
  <p><strong>Nachvollziehbarkeit statt Bauchgefühl. Kriterien statt Buzzwords.</strong></p>
</blockquote>

<p>Das ist die Lücke, die WAF++ schließt. Nicht indem es AWS WA oder CNCF ersetzt — sondern indem es als vendor-neutrale Assessment-Schicht darüber liegt. Ein Werkzeug, um Entscheidungen zu strukturieren, Trade-offs zu dokumentieren und Governance zu einem Engineering-Artefakt zu machen — nicht zu einer PowerPoint-Folie.</p>

<h2 id="sieben-säulen-zwei-aktiv-eine-vision">Sieben Säulen, zwei aktiv, eine Vision</h2>

<p>WAF++ strukturiert die Bewertung von Cloud-Architekturen über sieben Säulen: Security, Cost Optimization, Performance Efficiency, Reliability, Operational Excellence, Sustainability und Sovereign. Jede Säule ist darauf ausgelegt, die Fragen zu stellen, die Provider-Frameworks überspringen — inklusive Guidance zu Evidence-Artefakten, Scoring-Logik und regulatorischer Ausrichtung.</p>

<p>Aktuell sind zwei Säulen vollständig aktiv:</p>

<ul>
  <li><strong>Säule 2 — Cost Optimization:</strong> FinOps-Prinzipien, Kostentransparenz, Budget-Guardrails und Right-Sizing-Empfehlungen.</li>
  <li><strong>Säule 7 — Sovereign:</strong> Datensouveränität, Vendor-Lock-in, Exit-Fähigkeit und regulatorische Compliance. Die Säule, die kein großes Provider-Framework als erstklassiges Thema behandelt.</li>
</ul>

<p>Die verbleibenden fünf Säulen sind geplant und befinden sich in unterschiedlichen Design-Phasen. Das Projekt ist bewusst lean ausgerichtet: Liefern, was real ist — nicht, was auf einer Roadmap-Folie vollständig wirkt.</p>

<p>Das Governance-Modell ist dokumentiert. Die Antora-basierte technische Dokumentation ist teilweise fertig. Und am 12. Mai — einen Tag vor der Cloud Native Conference 2026 in Frankfurt — geht WAF++ Version 1 live: sowohl die Marketing-Plattform als auch die Dokumentation.</p>

<h2 id="static-first-deterministisch-und-bewusst-begrenzt">Static-First, deterministisch und bewusst begrenzt</h2>

<p>Eine der interessanteren Engineering-Entscheidungen bei WAF++ betrifft die Plattform selbst. Website und Dokumentation basieren auf einer konsequenten Static-First-Architektur: Jekyll für das öffentliche Web, Antora für die technische Dokumentation, GitHub Pages für das Hosting. Keine Runtime-API-Abhängigkeiten. Kein Plugin-Magie. Kein dynamisches Rendering.</p>

<p>Das ist keine Kostensparmaßnahme — es ist eine bewusste philosophische Entscheidung. Jeder Build ist reproduzierbar. Jede Seite ist auditierbar. GitHub-Contributor-Daten werden zur Build-Zeit abgerufen und als lokales JSON gecacht. SEO-Metadaten werden in jedem Artikel explizit im Frontmatter definiert — niemals vom Theme-Standard abgeleitet.</p>

<p>Das Prinzip zieht sich durch das gesamte Projekt: explizite Konfiguration statt impliziter Magie. Dasselbe Prinzip, das das Governance-Framework antreibt — wer seine Arbeit nicht zeigen kann, dessen Entscheidung ist nicht nachvollziehbar.</p>

<p>Die mehrsprachige Unterstützung (Englisch und Deutsch) folgt derselben Logik. Kein i18n-Plugin, das Build-Komplexität und unvorhersehbares Caching erzeugt. Stattdessen: eine saubere Parallelstruktur unter <code class="language-plaintext highlighter-rouge">/de/</code>, die volle SEO-Kontrolle und deterministischen Output bei jedem Build liefert.</p>

<h2 id="yaml-als-steuerungssprache">YAML als Steuerungssprache</h2>

<p>Das Governance-Framework im Kern von WAF++ ist deklarativ in YAML definiert. Jedes Control hat eine ID, eine Säule, einen Schweregrad und eine Menge typisierter Checks, die von einer Policy-Engine validiert werden können — aktuell Terraform.</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">id</span><span class="pi">:</span> <span class="s">SOV-010</span>
<span class="na">pillar</span><span class="pi">:</span> <span class="s">sovereign</span>
<span class="na">severity</span><span class="pi">:</span> <span class="s">high</span>
<span class="na">type</span><span class="pi">:</span> <span class="pi">[</span><span class="nv">governance</span><span class="pi">,</span> <span class="nv">configuration</span><span class="pi">]</span>
<span class="na">checks</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="na">id</span><span class="pi">:</span> <span class="s">tf.region_pinned</span>
    <span class="na">engine</span><span class="pi">:</span> <span class="s">terraform</span>
</code></pre></div></div>

<p>Das ist es, was WAF++ von einer Sammlung von Best-Practice-Dokumenten unterscheidet. Die Controls sind maschinell prüfbar. Evidence-Typen sind typisiert — Architekturdiagramme, IaC, Config-Exports. Die Engine-Abstraktion ermöglicht die Validierung gegen mehrere Tools, ohne die Control-Definition neu schreiben zu müssen.</p>

<p>Das Community-Governance-Modell spiegelt diese Transparenz wider: ein Technical Steering Committee, Maintainer-Teams, Working Groups und ein RFC-Prozess. Jede Entscheidung ist öffentlich dokumentiert. Jede Rolle hat eine definierte Amtszeit und klare Verantwortlichkeiten.</p>

<p><img src="https://waf2p.dev/assets/images/articles/cloud_native_conference_waf2p.png" alt="WAF++ auf der Cloud Native Conference 2026 Frankfurt" />
<em>Cloud Native Conference 2026 · Frankfurt · 13. Mai 2026</em></p>

<h2 id="frankfurt-ist-eine-startlinie-kein-ziel">Frankfurt ist eine Startlinie, kein Ziel</h2>

<p>Die Cloud Native Conference 2026 in Frankfurt — 13. Mai — fällt einen Tag nach dem WAF++ v1-Release. Dieses Timing ist kein Zufall. Die Konferenz ist der erste große Moment, bei dem WAF++ auf die Community trifft, für die es gebaut wurde: Platform Engineers, Cloud-Architekten und die Teams, die Governance-Entscheidungen im großen Maßstab tatsächlich treffen müssen.</p>

<p>Das Ziel ist nicht, mit einem polierten Produkt und einer Demo anzureisen. Das Ziel ist, mit etwas Echtem, Offenem und Review-bereitem anzukommen. Die Säulen sind nicht fertig — und das ist der Punkt. WAF++ ist darauf ausgelegt, öffentlich gebaut und von den Menschen geformt zu werden, die es nutzen.</p>

<blockquote>
  <p><strong>„Wer glaubt, Governance sei das Problem von jemand anderem, war noch nie derjenige, der einer CFO eine 400.000-Dollar-Egress-Rechnung erklären musste.”</strong></p>
</blockquote>

<p>Bis zum 12. Mai konzentriert sich das Team auf drei Dinge: die v1-Dokumentationsstruktur in Antora finalisieren, die Sovereign-Säulen-Referenzinhalte vervollständigen und die Governance-YAML-Controls so weit härten, dass sie als echte Audit-Baseline eingesetzt werden können.</p>

<p>Wer die Cloud Native Conference 2026 in Frankfurt besucht, wird das WAF++-Team dort antreffen. Nicht mit einem Vendor-Stand und gebrandeten Werbeartikeln — sondern mit funktionierender Software, offenen RFCs und echtem Interesse daran, zu hören, welche Probleme ihr tatsächlich lösen müsst.</p>

<h2 id="die-cloud-wird-nicht-einfacher">Die Cloud wird nicht einfacher</h2>

<p>Multi-Cloud ist kein Zukunftsszenario mehr — es ist operative Realität für die meisten Organisationen ab einer bestimmten Größe. Und je komplexer das Umfeld wird, desto größer wird die Lücke zwischen „wir haben ein Framework” und „wir können unsere Entscheidungen nachvollziehen”.</p>

<p>Der regulatorische Druck beschleunigt das. DSGVO war ein Anfang. DORA, NIS2 und die sich weiterentwickelnde Landschaft von Datenlokalisierungsanforderungen machen Souveränität zu einem erstklassigen technischen Anliegen — nicht nur zu einem rechtlichen. ISO 27001 und NIST bieten solide Compliance-Grundlagen, wurden aber nicht für alltägliche Cloud-Architekturentscheidungen konzipiert.</p>

<p>WAF++ ist kein Compliance-Tool. Es ist ein Engineering-Werkzeug, das Compliance handhabbar macht. Es gibt Platform-Teams die gemeinsame Sprache, das Scoring-Modell und das Evidence-Framework, um die schwierigen Fragen zu beantworten, bevor ein Auditor sie stellt.</p>

<h2 id="alles-ist-offen">Alles ist offen</h2>

<p>WAF++ ist Open Source. Das Framework, die Controls, das Governance-Modell und die Plattform sind alle öffentlich. Beiträge sind nicht nur willkommen — sie sind der eigentliche Punkt. Working Groups bilden sich rund um jede Säule. Der RFC-Prozess ist live.</p>

<p>Wer Cloud-Infrastruktur im großen Maßstab betrieben hat, mit einer Vendor-Lock-in-Situation konfrontiert war, Kostenanomalen gegenüber nicht-technischen Stakeholdern erklären musste oder eine Plattform gebaut hat, die über mehrere regulatorische Regime hinweg compliant sein musste — der hat Wissen, das in WAF++ gehört.</p>

<hr />

<p><strong>Website:</strong> <a href="https://waf2p.dev">waf2p.dev</a>
<strong>Repository:</strong> <a href="https://github.com/waf2p">github.com/waf2p</a>
<strong>Dokumentation:</strong> Live ab 12. Mai 2026
<strong>Cloud Native Conference 2026, Frankfurt — 13. Mai 2026</strong></p>

<hr />

<p><em>WAF++ ist eine Open-Source-Initiative, die nach dem Maintainer-Modell operiert und strategisch auf eine Foundation- oder CNCF-nahe Struktur ausgerichtet ist. Code: Apache 2.0 · Dokumentation &amp; Inhalte: CC BY 4.0</em></p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><category term="open_source" /><category term="governance" /><summary type="html"><![CDATA[60 Tage vor der Cloud Native Conference 2026 steht WAF++ kurz vor dem v1-Release. Ein vendor-neutrales, open-source Assessment-Framework für Cloud-Architekturen — und warum es jetzt relevant ist.]]></summary></entry><entry xml:lang="en"><title type="html">WAF++ — Because Best Practices Sometimes Aren’t</title><link href="https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-because-best-practices-sometimes-arent/" rel="alternate" type="text/html" title="WAF++ — Because Best Practices Sometimes Aren’t" /><published>2026-01-31T00:00:00+00:00</published><updated>2026-01-31T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-because-best-practices-sometimes-arent</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-because-best-practices-sometimes-arent/"><![CDATA[<p>Great ideas rarely happen when you plan them — most of the time they emerge somewhere between a dead battery, an overheating laptop, and a drink you didn’t really need. That’s exactly how it was on the eve of Cloud Native Conference 2025.</p>

<p>Tim, Sebastian, and I were sitting in that typical hotel bar atmosphere: too loud, too expensive, not enough power outlets. But the tech talk started up the way it always does: cloud architecture, sovereignty, provider lock-in, best practices that aren’t really best practices — the kind of nerd conversation you can only have after 10pm with people who get it.</p>

<p>And somewhere — somewhere between “why does nobody do this properly?” and “this really should be better…” — something suddenly became clear to us:</p>

<ol>
  <li>There is no Well-Architected Framework that is truly open, community-driven, and grounded in practice.</li>
  <li>None that actually listens to cloud practitioners.</li>
  <li>None that reflects the reality of our day-to-day work.</li>
</ol>

<p>In that moment, WAF++ was born — maybe not the name yet, but definitely the idea. And no, not from a corporate workshop or an “Architecture Steering Board” — but from a spontaneous bar session full of ideas, discussions, and honest technical frustration. A mix of “we could…”, “we should…”, and “okay, let’s actually do this.”</p>

<h2 id="day-1-after-the-idea--cnc-2025">Day 1 After the Idea — CNC 2025</h2>

<p>The next day, Cloud Native Conference 2025 kicked off. We played Mario Kart, attended a lot of talks — including our own — and worked through security topics and sovereignty discussions… but the word we’d been missing the night before never really came up, because it simply didn’t exist yet.
Each of us had our own presentation, all technically solid, but the issue of the missing framework wouldn’t let us go.</p>

<p><img src="/assets/images/articles/cloud_native_conference_waf2p.png" alt="Sebastian and Sascha playing Mario Kart at CNC 2025" title="Sebastian and Sascha playing Mario Kart" />
<em>(C) by <a href="https://www.manuelemme.com/" title="Manuel Emme Fotografie">Manuel Emme Fotografie</a> / Vogel IT / Cloud Native Conference</em></p>

<p>That evening, at the CNC party, the conversations continued. My company even picked up a Rockstar Award for an architecture implementation — which didn’t make the evening any less nerdy. We stood there, between music, networking, and bad lighting, and kept talking about how the cloud world needs exactly this kind of framework.
It turned into a long night, with early flights and breakfast options clearly not designed for people running on two hours of sleep.</p>

<h2 id="the-weeks-after--the-official-start">The Weeks After — The Official Start</h2>

<p>In the two weeks following the conference we kept the conversation going intensively and made a decision: we’re starting as a team of four.</p>

<p>Artem — who later also came up with the name — completes the founding team.</p>

<p>I asked him, and he was in immediately. So we planned. One session means a virtual marathon meeting of four to five hours on Saturdays. Since the kickoff we’ve had eight of those sessions already. All following the same pattern: plan, geek out, laugh. Lots of laughing. Fun matters to us. Just as much as the idea that WAF++ is being built by the community, for the community.</p>

<h2 id="today--2026-one-hundred-days-before-cnc-2026">Today — 2026, One Hundred Days Before CNC 2026</h2>

<p>And now? Welcome to 2026.
We are roughly 100 days from Cloud Native Conference 2026 — and we have:</p>

<ul>
  <li>the whitepaper finished</li>
  <li>a survey on its way</li>
  <li>more and more conference sessions being confirmed</li>
  <li>and recently: our own Antora documentation area</li>
</ul>

<blockquote>
  <p>WAF++ is growing. The community can grow. The idea is alive.</p>
</blockquote>

<p>And: you can be part of it right now.</p>

<p>Have a look around the site.
Leave a like.
Drop a comment, a suggestion — or even a PR if you want to really dive in.
We will see you on 12.05.2026 in Frankfurt at Cloud Native Conference 2026.
And maybe another idea will start there too — somewhere between tech talk, a drink, and an overheating laptop.</p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><category term="best_practices" /><summary type="html"><![CDATA[Great ideas rarely happen on schedule. WAF++ was born in a hotel bar the night before Cloud Native Conference 2025 — here's how it happened.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/cloud_native_conference_waf2p.png" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/cloud_native_conference_waf2p.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">WAF++ - Weil Best Practices manchmal keine sind</title><link href="https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-weil-best-practices-manchmal-keine-sind/" rel="alternate" type="text/html" title="WAF++ - Weil Best Practices manchmal keine sind" /><published>2026-01-31T00:00:00+00:00</published><updated>2026-01-31T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-weil-best-practices-manchmal-keine-sind</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/best_practices/2026/01/31/waf2p-weil-best-practices-manchmal-keine-sind/"><![CDATA[<p>Große Ideen entstehen selten dann, wenn man sie plant — meistens passieren sie irgendwo zwischen leerem Akku, überhitztem Laptop und einem Getränk, das man eigentlich gar nicht mehr gebraucht hätte. Genau so war es am Vorabend der Cloud Native Conference 2025.</p>

<p>Tim, Sebastian und ich saßen in dieser typischen Hotelbar‑Atmosphäre: zu laut, zu teuer, zu wenig Steckdosen. Trotzdem begann das Fachsimpeln wie immer: Cloud‑Architektur, Souveränität, Provider‑Lock‑in, Best Practices, die eigentlich gar keine sind… eben der normale Nerd‑Talk, den man nach 22 Uhr nur mit Gleichgesinnten führen kann.</p>

<p>Und irgendwann — irgendwo zwischen „Warum macht das eigentlich niemand richtig?“ und „Das müsste doch besser gehen…“ — wurde uns plötzlich etwas klar:</p>

<ol>
  <li>Es gibt kein Well‑Architected Framework, das wirklich offen, community‑getrieben und praxisnah ist.</li>
  <li>Keins, das Cloud‑Nerds zuhört.</li>
  <li>Keins, das unseren Alltag abbildet.</li>
</ol>

<p>In diesem Moment war WAF++ geboren — vielleicht noch nicht der Name, aber definitiv die Idee. Und nein, nicht aus einem Corporate‑Workshop oder einem „Architecture Steering Board“, sondern aus einer spontanen Bar‑Session voller Ideen, Diskussionen und ehrlicher technischer Frustration. Eine Mischung aus „wir könnten…“, „wir sollten…“ und „okay, lass uns das jetzt wirklich machen“.</p>

<h2 id="tag-1-nach-der-idee--cnc-2025">Tag 1 nach der Idee — CNC 2025</h2>

<p>Am nächsten Tag startete die Cloud Native Conference 2025. Wir haben Mario Kart gespielt, waren in vielen Vorträgen - auch unsere eigenen, haben uns durch Security‑Themen und Souveränitäts‑Diskussionen gehört… aber das Wort, das uns am Vorabend so gefehlt hatte, fiel eigentlich nie — weil es schlicht noch nicht existierte.
Jeder von uns hatte eine eigene Präsentation, alle natürlich technisch sauber, aber die Sache mit dem fehlenden Framework ließ uns nicht los.</p>

<p><img src="/assets/images/articles/cloud_native_conference_waf2p.png" alt="Sebastian und Sascha spielen Mario Kart auf der CNC 2025" title="Sebastian und Sascha spielen Mario Kart" />
<em>(C) by <a href="https://www.manuelemme.com/" title="Manuel Emme Fotografie">Manuel Emme Fotografie</a> / Vogel IT / Cloud Native Conference</em></p>

<p>Am Abend, bei der CNC‑Party, ging es weiter. Nebenbei bekam meine Firma sogar einen Rockstar Award für eine architektonische Umsetzung — was den Abend nicht weniger nerdig machte. Wir standen da, zwischen Musik, Networking und schlechten Lichtverhältnissen, und redeten weiter darüber, dass die Cloud‑Welt genau dieses Framework braucht.
Es wurde eine lange Nacht, mit frühen Flügen und Frühstücksoptionen, die eindeutig nicht für Menschen gemacht sind, die zwei Stunden oder Schlaf hatten.</p>

<h2 id="die-wochen-danach--der-offizielle-start">Die Wochen danach — der offizielle Start</h2>

<p>In den zwei Wochen nach der Konferenz haben wir uns intensiv ausgetauscht und entschieden: Wir starten zu viert.</p>

<p>Artem — der später auch die Idee für den Namen hatte — komplettiert das Gründerteam.</p>

<p>Ich hab ihn gefragt, und er war sofort dabei. Also haben wir geplant. Eine Session basiert auf einem virtuellen Marathon‑Meeting von vier bis fünf Stunden an Samstagen. Seit dem Kick‑off hatten wir bereits acht dieser Sessions. Alle nach dem gleichen Muster: planen, fachsimpeln, lachen. Viel lachen. Spaß ist uns wichtig. Genau wie der Gedanke, dass WAF++ von der Community für die Community entsteht.</p>

<h2 id="heute--2026-hundert-tage-vor-der-cnc-2026">Heute — 2026, Hundert Tage vor der CNC 2026</h2>

<p>Und jetzt? Willkommen im Jahr 2026.
Wir sind rund 100 Tage vor der Cloud Native Conference 2026 — und wir haben:</p>

<p>das Whitepaper fertig
eine Umfrage auf dem Weg (URL)
immer mehr Konferenz‑Sessions, die gerade bestätigt werden
und seit Kurzem: unseren eigenen Antora‑Dokumentationsbereich</p>

<blockquote>
  <p>WAF++ wächst. Die Community kann wachsen. Die Idee lebt.</p>
</blockquote>

<p>Und: Du kannst jetzt Teil davon werden.</p>

<p>Schau dich hier auf der Seite gerne um.
Lass ein Like da.
Hinterlass einen Kommentar, einen Vorschlag — oder sogar einen PR, wenn du richtig reindroppen willst.
Wir sehen uns definitiv am 12.05.2026 in Frankfurt auf der Cloud Native Conference 2026.
Und vielleicht beginnt auch dort wieder eine Idee, irgendwo zwischen Fachsimpeln, einem Drink und einem überhitzten Laptop.</p>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><category term="best_practices" /><summary type="html"><![CDATA[Große Ideen entstehen selten dann, wenn man sie plant — meistens passieren sie irgendwo zwischen leerem Akku, überhitztem Laptop und einem Getränk, das man eigentlich gar nicht mehr gebraucht hätte. Genau so war es am Vorabend der Cloud Native Conference 2025.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/cloud_native_conference_waf2p.png" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/cloud_native_conference_waf2p.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="en"><title type="html">WAF++ — A New Approach to Sovereign Multi-Cloud Architectures</title><link href="https://www.wombat-gov.dev/cloud/2025/11/25/waf-a-new-approach/" rel="alternate" type="text/html" title="WAF++ — A New Approach to Sovereign Multi-Cloud Architectures" /><published>2025-11-25T00:00:00+00:00</published><updated>2025-11-25T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/2025/11/25/waf-a-new-approach</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/2025/11/25/waf-a-new-approach/"><![CDATA[<p>Cloud architectures are under enormous pressure today: rising regulatory requirements, growing demand for multi-cloud flexibility, and the desire to stay independent from any single provider. While AWS, Azure, and GCP each offer their own Well-Architected Frameworks, a neutral, European-led approach has been missing — until now. That is exactly where <strong>WAF++</strong> steps in.</p>

<h2 id="why-waf">Why WAF++?</h2>

<p>WAF++ is a <em>community-driven, cloud-agnostic</em> framework aimed at architects, engineers, and organisations building modern cloud architectures without binding themselves to a single vendor. The seven pillars of the framework cover all the relevant areas — from security and operational excellence through to compliance and sovereignty.</p>

<p>As an open project, WAF++ stands for transparency, neutrality, and a strong community that develops building blocks, patterns, and reference architectures together.</p>

<h2 id="the-seven-pillars-at-a-glance">The Seven Pillars at a Glance</h2>

<ol>
  <li><strong>Security</strong> — Vendor-independent security principles</li>
  <li><strong>Cost Optimization</strong> — Transparent and traceable cost models</li>
  <li><strong>Performance Efficiency</strong> — Cross-cloud scalability</li>
  <li><strong>Reliability</strong> — Resilience through patterns, not services</li>
  <li><strong>Operational Excellence</strong> — Unified operational processes across all clouds</li>
  <li><strong>Sustainability</strong> — Measurable efficiency and ecological responsibility</li>
  <li><strong>Compliance, Governance &amp; Data Sovereignty</strong> — The European focus</li>
</ol>

<p>Each pillar is backed by best practices, building blocks, and concrete evaluation criteria.</p>

<h2 id="what-makes-waf-different">What Makes WAF++ Different?</h2>

<p>While existing frameworks are heavily tailored to their respective cloud providers, WAF++ focuses on what architects actually need:
<strong>Independent principles, neutral architecture patterns, and a traceable evaluation baseline.</strong></p>

<p>WAF++ is not a vendor’s marketing tool — it is a tool <em>of the community, for the community</em>.</p>

<h2 id="what-comes-next">What Comes Next?</h2>

<p>The roadmap for version 1.0 is clear: a solid technical foundation, first reference architectures, a public maturity model, and a structured certification path for architects.
With growing participation from the cloud native community, a genuine European counterpart to proprietary WAF offerings is taking shape — step by step.</p>

<p>If you are interested in multi-cloud, sovereignty, or modern architecture principles, now is the perfect time to get involved with WAF++.
<strong>Start a discussion, open an issue — or bring your own idea to the table!</strong></p>

<blockquote>
  <p>WAF++ is open, vendor-neutral, and evolves with every new voice that joins.</p>
</blockquote>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><summary type="html"><![CDATA[Cloud architectures are under enormous pressure. WAF++ is a community-driven, cloud-agnostic framework that gives architects the tools to build without vendor lock-in.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/wafpp-new-approach-cover.jpg" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/wafpp-new-approach-cover.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">WAF++ - Ein neuer Ansatz für souveräne Multi-Cloud-Architekturen</title><link href="https://www.wombat-gov.dev/cloud/2025/11/25/waf-ein-neuer-ansatz/" rel="alternate" type="text/html" title="WAF++ - Ein neuer Ansatz für souveräne Multi-Cloud-Architekturen" /><published>2025-11-25T00:00:00+00:00</published><updated>2025-11-25T00:00:00+00:00</updated><id>https://www.wombat-gov.dev/cloud/2025/11/25/waf-ein-neuer-ansatz</id><content type="html" xml:base="https://www.wombat-gov.dev/cloud/2025/11/25/waf-ein-neuer-ansatz/"><![CDATA[<h1 id="waf-ein-neuer-ansatz-für-souveräne-multi-cloud-architekturen">WAF++: Ein neuer Ansatz für souveräne Multi-Cloud-Architekturen</h1>

<p>Cloud-Architekturen stehen heute unter enormem Druck: steigende regulatorische Anforderungen, wachsender Bedarf an Multi-Cloud-Flexibilität und der Wunsch nach Unabhängigkeit von einzelnen Anbietern. Während AWS, Azure und GCP ihre eigenen Well-Architected Frameworks anbieten, fehlt bislang ein neutraler, europäisch geprägter Ansatz. Genau hier setzt <strong>WAF++</strong> an.</p>

<h2 id="warum-waf">Warum WAF++?</h2>

<p>WAF++ ist ein <em>community-getriebenes, cloud-agnostisches</em> Framework, das sich an Architekten, Engineers und Organisationen richtet, die moderne Cloud-Architekturen entwickeln möchten – ohne sich an einen Anbieter zu binden. Die sieben Säulen des Frameworks decken alle relevanten Bereiche ab: von Security über Operational Excellence bis zu Compliance und Souveränität.</p>

<p>Als offenes Projekt steht WAF++ für Transparenz, Neutralität und eine starke Community, die gemeinsam Bausteine, Muster und Referenzarchitekturen entwickelt.</p>

<h2 id="die-sieben-säulen-auf-einen-blick">Die sieben Säulen auf einen Blick</h2>

<ol>
  <li><strong>Security</strong> – Anbieterunabhängige Sicherheitsprinzipien</li>
  <li><strong>Cost Optimization</strong> – Transparente und nachvollziehbare Kostenmodelle</li>
  <li><strong>Performance Efficiency</strong> – Cloud-übergreifende Skalierbarkeit</li>
  <li><strong>Reliability</strong> – Resilienz durch Muster statt Services</li>
  <li><strong>Operational Excellence</strong> – Einheitliche Betriebsprozesse über alle Clouds</li>
  <li><strong>Sustainability</strong> – Messbare Effizienz und ökologische Verantwortung</li>
  <li><strong>Compliance, Governance &amp; Data Sovereignty</strong> – Der europäische Schwerpunkt</li>
</ol>

<p>Jede Säule wird durch Best Practices, Bausteine und konkrete Bewertungskriterien ergänzt.</p>

<h2 id="was-macht-waf-besonders">Was macht WAF++ besonders?</h2>

<p>Während bestehende Frameworks stark auf die jeweiligen Cloud-Provider zugeschnitten sind, konzentriert sich WAF++ auf das, was Architekten wirklich brauchen:<br />
<strong>Unabhängige Prinzipien, neutrale Architekturmuster und eine nachvollziehbare Bewertungsgrundlage.</strong></p>

<p>WAF++ ist kein Marketingtool eines Anbieters – sondern ein Werkzeug <em>der Community für die Community</em>.</p>

<h2 id="was-kommt-als-nächstes">Was kommt als Nächstes?</h2>

<p>Die Roadmap für Version 1.0 ist klar: ein technisches Grundgerüst, erste Referenzarchitekturen, ein öffentliches Maturity Model und ein strukturierter Zertifizierungspfad für Architekten.<br />
Mit wachsender Beteiligung aus der Cloud Native Community entsteht Schritt für Schritt ein echtes europäisches Gegenstück zu proprietären WAF-Angeboten.</p>

<p>Wenn du dich für Multi-Cloud, Souveränität oder moderne Architekturprinzipien interessierst, ist jetzt der perfekte Zeitpunkt, bei WAF++ mitzumachen.<br />
<strong>Starte eine Diskussion, öffne ein Issue – oder bring eine eigene Idee ein!</strong></p>

<blockquote>
  <p>WAF++ ist offen, vendor-neutral und entwickelt sich mit jeder neuen Stimme weiter.</p>
</blockquote>]]></content><author><name>Wombat Community</name><email>info@wafpp.dev</email></author><category term="cloud" /><summary type="html"><![CDATA[WAF++: Ein neuer Ansatz für souveräne Multi-Cloud-Architekturen]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.wombat-gov.dev/assets/images/articles/wafpp-new-approach-cover.jpg" /><media:content medium="image" url="https://www.wombat-gov.dev/assets/images/articles/wafpp-new-approach-cover.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>