aKI hat das so beschrieben, als ich ihr sagte, sie solle doch mal das technische zeugs so beschreiben, dass es auch nicht-IT, Leute verstehen. Inzwischen klappt das schon sehr gut. Wir haben bereits ein ziemlich grosses Vokabular an Metaphern entwickelt:
Hotel (Schichten-Metapher)
Baustelle (Rollen & Qualität)
Räume mit Funktion
Inventar & Artefakte
Gäste-Perspektive & Diagnose
Strangler-Migration
Das Vokabular wird laufend weiterentwickelt, damit die Blog Posts konsistent bleiben.
Hotel (Schichten-Metapher)
- Das Hotel — akisim/OpenSim als Gesamtsystem
- Erdgeschoss — Domain Layer – Tragwerk, Geschäftsregeln, kein Werkzeug erlaubt (AD-007)
- Erster Stock — Application Layer – der Concierge, nimmt Aufträge entgegen, orchestriert
- Zweiter Stock — Adapter Layer – Türen und Fenster, übersetzen zwischen drinnen und draussen
- Dachgeschoss — Infrastructure Layer – „Keller-Technik in Dachgeschoss-Verkleidung", Datenbank/HTTP/Telemetrie
- Hausmeister-Büro — Composition Root – stöpselt alles zusammen
- Gäste — User / Avatare
- Renovierung im laufenden Betrieb — Strangler Fig – Migration ohne Big Bang (AD-001)
- Telefonbuch nutzen — Constructor Injection / Service Lookup (AD-009 Pain Point #2)
- Mitarbeiter, die durch alle Büros laufen und rufen — Module mit scene.RequestModuleInterface<T>() – Anti-Pattern
- Der Anbau, an dem zwanzig Jahre gebaut wurde — OpenSim als Heritage-Codebasis
- Eine Tür pro Zimmer — Genau eine Implementierung pro Aufgabe (AD-010)
- Hotel mit Eingangs-Pavillon — Zwischenzustand während der Migration
Baustelle (Rollen & Qualität)
- Architekt — Software-Architektin – plant, entscheidet ADs
- Statiker — wer das Tragwerk (Domain) berechnet
- Bauleiter — Tech Lead – koordiniert
- Baumeister / Polier — Entwicklerin – setzt um
- Bauplan — architecture_decisions.md
- Probe-Bohrung — Spike / Proof of Concept
- Rohbau — MVP, lauffähig aber nicht hübsch
- Innenausbau — Polish-Phase, UX, Doku
- Bauzaun — Modul- / Bounded-Context-Grenzen
- Baustellen-Schild — Feature-Flag / Status-Markierung
- Kran — CI/CD-Pipeline
- TÜV / Bauabnahme — Code Review, Acceptance Tests
- Qualitätskontrolle — Tests (Unit / Integration / E2E)
- Probestatik — Architecture Tests / NetArchTest
- Schlüsselübergabe — Release
- Der eine Handwerker, der drei Tage sucht — Onboarding-Schmerz in alter Codebasis
Räume mit Funktion
- Keller — Persistence / Datenbank-Schemas (AD-011, AD-012)
- Alter Aktenraum (im Keller) — Legacy-Persistence (MySQLSimulationData, ADO.NET, handgeschriebene Karteikarten). Hatte historisch einen Pfeil nach oben in die Möbel-Verwaltung – der letzte Backwards-Edge aus AD-025
- Digitales Backoffice (neuer Aktenraum) — Neue EF-Core-Persistence (Repository-Layer mit Domain-Ports, AD-013/AD-045). Saubere Schubladen, klare Beschriftung – und null Pfeile nach oben
- Lieferanteneingang — External Services / Integrationen
- Pförtnerloge — Auth / Login
- Brandmeldeanlage — Monitoring / Alerting / Observability (AD-018)
- Aufzug — Service Bus / Eventing
- Wäscherei — Cache / Asset Pipeline
- Notausgang — Error Handling / Failover
- Gäste-WLAN — HTTP / Caps / Client-API
- Werkzeugschuppen — Cross-cutting Concerns (Logging AD-034, Konfig AD-033, Imaging AD-031, etc.)
- Hotelregister — Identity / User Management
- Hotelbibliothek — ILibraryService / LibraryService – read-only Büchersammlung, XML-geladen beim Hotelstart, kein Netz. Pilot-Schnitt für Stage 3
- Neue Telefonanlage der Gastgeberin — gRPC / Proto-Contracts für Stage 4. Ersetzt alte handgeschriebene Notizkarten (REST/XML-RPC) durch strukturiertes Gesprächsprotokoll mit 13 dedizierten Leitungen
Inventar & Artefakte
- Briefkasten — Umgebungsvariablen / OS-Provided Env – Tokens, Endpoints, Secrets, die das Hotel von draußen reingereicht bekommt (AD-021 Cold-Start)
- Hausmeister-Notizbuch — Config-File (akisim.yaml, AD-033) – liegt im Hausmeister-Büro neben dem Main-Programm
- Hausordnungs-Mappe — IEstateDataService / Estate-Settings – welche Regeln gelten in welchem Stockwerk
- Werkzeuggürtel der Hausmeisterin — Die Menge der DI-registrierten Application-Services (AddAkiSimApplication()). Nach Stage 3 mit echten Inhalten befüllt
- Tagebuch — Logging-Output (AD-034 Serilog → OTel) – wer hat eingecheckt, wo gab's einen Wasserschaden
- Auswärtige Werkstatt — Cloud-Runner (Codeberg-Hosted-Runner) – fertigt Container-Images ausserhalb des Hotels
- Bauhof am Hotel — Self-hosted Runner auf dem Omnibook – steht auf dem Grundstück, pollt das Lieferschein-Buch
- Lieferschein-Buch — homelab-Git-Repo als Desired-State – GitOps-Pattern. Wenn Buch und Hotel auseinanderlaufen, hat das Buch recht
- Werks-Ausweis — SSH-Deploy-Key – pro CI-Direction ein eigener Schlüssel, kein Generalschlüssel
- Lager mit nummerierten Kisten — Container-Registry (codeberg.org/...) – wo fertige Bauteile mit Tag-Nummer zwischengelagert werden
Gäste-Perspektive & Diagnose
- Lese-Brille des Gasts — Viewer-Software (Firestorm, Cool VL, Singularity) – liegt nicht im Hotel, liegt beim Gast zuhause
- Beschlagene Brille — Client-seitiges Setup-Problem – falsche Grafikkarte, zu wenig VRAM. Symptom sieht aus wie ein Hotel-Bug, ist aber keiner
- Brillenglas links / Brillenglas rechts — Integrierte GPU vs. dedizierte GPU im Optimus-/Hybrid-Laptop
- Hotelarzt — Diagnose-Rolle – triagiert Symptome, bevor das Hotel angezeigt wird
- Es liegt nicht immer am Hotel — Mantra für Diagnose-Reihenfolge: erst Client-Setup, dann Server-Hypothesen
Strangler-Migration
- Doppelgänger an der Rezeption — Strangler-Wrapper / Delegating-Service (AD-018/AD-049). Sieht aus wie der alte Verwalter, geht aber bei definierten Fragen still ins neue Backoffice
- Möbel in Zimmer 207 — Prims in einer Region (LoadObjects) – Pilot-Frage Nr. 1 für den ersten Persistenz-Durchstich
- Hausregeln des Stockwerks — RegionSettings (LoadRegionSettings) – Pilot-Frage Nr. 2
- Speisekarte komplett aufs Tablett, bevor der Kellner die Küche verlässt — AD-045 – IAsyncEnumerable<T> muss vor Scope-Dispose materialisiert werden (.ToList()-Pflicht)
- Zwei Formular-Versionen mit Ablaufdatum — AD-050 Fat-DTO neben Domain-purem Aggregat. Stirbt gemeinsam mit dem Strangler-Wrapper an Stage 3+ DoD
- Pilot-Frage — Die eine konkrete Operation, an der ein Slice den neuen Durchstich beweist
- Türsteher — IAuthorizationService – reine Entscheidungslogik Ja/Nein (AD-014 PermissionContext)
- Dreizehn Leitungen — Die 13 akigrid-Domains für Stage 4 via gRPC: accounts, auth, grid, presence, griduser, assets, inventory, avatar, friends, groups, offlineim, profile, hypergrid
- Kleiderschrank-Vorraum / Garderobe — Flotsam Cache – Kurzzeit-Lager für Baked Textures, wird bei Neustart geleert
- Neues Kleiderschrank-Archiv — XBakes Filesystem (IBakedTextureModule) – persistentes Kleiderlager, überlebt Neustarts
- Kleiderschrank-Schlüsselnummer — Baked Texture UUID – Kern des Race-Condition-Problems nach Neustart
- Sprechanlage — LLUDP (Linden Lab UDP) – direkte Echtzeit-Leitung zwischen Gäste-Zimmer und Rezeption. Liegt im Adapter-Stockwerk
Das Vokabular wird laufend weiterentwickelt, damit die Blog Posts konsistent bleiben.


![[-]](https://www.gridtalk.de/images/collapse.png)