<h2>Inhaltsübersicht</h2>
<ul>
<li>Abstract</li>
<li>Zielgruppe</li>
<li>Voraussetzungen</li>
<li>Inhalte</li>
<li>Praxisübungen</li>
<li>Rahmen</li>
<li>Kompetenzen</li>
<li>Optionale Vertiefungen</li>
</ul>
<h2>Abstract</h2>
<p>Schnittstellen sauber entwerfen und langfristig wartbar halten: Protobuf‑IDL, API‑Versionierung, Mehrprotokoll‑Strategien (RPC/HTTP) und Interoperabilität in gemischten Systemlandschaften.</p>
<h2>Zielgruppe</h2>
<ul>
<li>Architekt:innen und API‑Owner für bRPC‑basierte Plattformen</li>
<li>C++‑Entwickelnde, die stabile Protobuf‑Schnittstellen definieren</li>
<li>Teams mit Hybrid‑Anforderungen (RPC intern, HTTP/JSON extern)</li>
</ul>
<h2>Voraussetzungen</h2>
<ul>
<li>Grundverständnis bRPC‑Server/Client und grundlegende Protobuf‑Konzepte</li>
<li>Praxis in API‑Design oder Erfahrung mit Service‑Schnittstellen ist vorteilhaft</li>
</ul>
<h2>Inhalte</h2>
<h3>Modul 1: Protobuf‑IDL als Contract</h3>
<ul>
<li>Service‑ und Message‑Design: Naming, Felddesign, Default‑Werte, Feldnummern‑Strategie</li>
<li>Kompatibilität: additive Änderungen, Deprecation, Breaking Changes und Migrationspfade</li>
<li>Fehler‑ und Statusmodell: domänenspezifische Fehler vs. Transportfehler</li>
</ul>
<h3>Modul 2: API‑Versionierung und Evolution</h3>
<ul>
<li>Versionierung auf Message‑/Service‑Ebene vs. Routing‑Ebene</li>
<li>Schema‑Evolution mit realistischen Beispielen (Langzeit‑Kompatibilität)</li>
<li>Rollout‑Strategien: Parallelbetrieb, Shadow‑Traffic, schrittweise Aktivierung</li>
</ul>
<h3>Modul 3: Mehrprotokoll‑Services und HTTP‑Integration</h3>
<ul>
<li>Mehrprotokoll‑Server: Konfiguration und Grenzen bei gemeinsamen Ports</li>
<li>HTTP/HTTPS‑Endpunkte: Semantik, Statuscodes, Idempotenz und Caching‑Hinweise</li>
<li>RPC‑zu‑HTTP‑Mapping (z. B. JSON‑Repräsentationen als Konzept) und typische Stolpersteine</li>
</ul>
<h3>Modul 4: Interoperabilität und Protokoll‑Ökosystem</h3>
<ul>
<li>Interop‑Szenarien mit gRPC‑ähnlichen Umgebungen (Konzept: HTTP/2‑Transport, IDL‑Kompatibilität)</li>
<li>Thrift‑Protokoll‑Anbindung (Konzept: Non‑Blocking‑Mode, Thread‑Safety‑Aspekte)</li>
<li>Custom Protocols: Kriterien, Risiken, Teststrategie und Governance</li>
</ul>
<h2>Praxisübungen</h2>
<h3>Übung 1: Protobuf‑Contract entwerfen und evolvieren</h3>
<ol>
<li>Aus einer Fachanforderung ein Service‑Interface und Messages ableiten</li>
<li>Additive Erweiterung durchführen (neue Felder, Deprecation) und Kompatibilität prüfen</li>
<li>Regressionstest für alte Clients gegen neue Server (und umgekehrt) definieren</li>
</ol>
<h3>Übung 2: Fehler‑ und Statusmodell implementieren</h3>
<ol>
<li>Domänenfehler katalogisieren und transportierbares Fehlerformat definieren</li>
<li>Mapping von Fehlern auf Client‑Handling und Retry‑Entscheidungen ableiten</li>
<li>Beispielhafte Fehlerszenarien automatisiert testen</li>
</ol>
<h3>Übung 3: Mehrprotokoll‑Bereitstellung (RPC + HTTP)</h3>
<ol>
<li>Einen RPC‑Endpunkt bereitstellen und parallel einen HTTP‑Endpunkt anbieten</li>
<li>Semantik‑Checks: Idempotenz, Statuscodes, Payload‑Validierung</li>
<li>Kompatibilitätsmatrix erstellen (welche Clients sprechen welches Protokoll?)</li>
</ol>
<h3>Übung 4: Migrationsplan für ein Legacy‑API</h3>
<ol>
<li>Legacy‑Schnittstelle analysieren (Breaking Points, Datenmodelle, Timeouts)</li>
<li>Ziel‑IDL entwerfen und Parallelbetrieb planen</li>
<li>Rollout‑Plan mit messbaren Kriterien (Fehlerraten, Latenz, Business‑KPIs) formulieren</li>
</ol>
<h2>Rahmen</h2>
<ul>
<li>Empfohlener Zeitbedarf: 2 Tage</li>
<li>Begründung zur Dauer: API‑Design benötigt Zeit für Diskussion, Review von Contracts, Kompatibilitätstests und das Erarbeiten eines belastbaren Versionierungs‑/Migrationsplans.</li>
<li>Format: Workshop‑Charakter mit Design‑Reviews und gemeinsamen Contract‑Sessions</li>
</ul>
<h2>Kompetenzen</h2>
<ul>
<li>Protobuf‑IDLs robust und langfristig kompatibel entwerfen</li>
<li>Versionierungs‑ und Migrationsstrategien für bRPC‑APIs definieren</li>
<li>Mehrprotokoll‑Bereitstellung sicher planen (RPC/HTTP)</li>
<li>Interop‑Risiken erkennen und mit Tests/Contracts absichern</li>
</ul>
<h2>Optionale Vertiefungen</h2>
<ul>
<li>Governance‑Modell für API‑Änderungen (Review‑Prozess, Deprecation‑Policy)</li>
<li>Schema‑Registrierung und Compatibility‑Checks in CI (Konzept)</li>
<li>Strategien für Payload‑Größen, Kompression und Streaming‑Eignung</li>
</ul>
