🏛️ Plattform-Architektur & Sicherheitsmodell
Centurio (centurioerp.com) ist als europäische B2B-Operations- und Compliance-Plattform konzipiert. Die Architektur basiert auf einem modularen Monolithen (Modular Monolith) mit strikter physischer Mandantentrennung auf Datenbankebene, asynchronem Event-Streaming und semantischer Erweiterbarkeit.
Gesamtarchitektur & Datenfluss
Die 5 Architektur-Säulen
🛡️ 1. Strikte Mandantenisolation (RLS)
Die Mandantentrennung beruht nicht nur auf Anwendungslogik, sondern wird durch PostgreSQL Row-Level-Security (RLS)
auf über 80 Tabellen erzwungen. Jede Session setzt SET LOCAL app.current_tenant_id = '...'.
Selbst bei Programmierfehlern können fremde Mandantendaten niemals abgefragt oder manipuliert werden.
◇ 2. Semantischer Core & Veröffentlichung
Produkt- und Auftragskategorien besitzen versionierte Attribut-Fieldsets. Entwürfe werden von aktiven Ständen isoliert. Änderungen durchlaufen eine Regel-Simulation gegen Altbestände und werden erst nach Auditierung und menschlicher Freigabe mit unveränderlichem SHA-Hash aktiviert.
🤖 3. KI ist Assistenz, keine Autorität
Agenten unterstützen bei OCR, Matching und Vorbelegung. Alle KI-Ergebnisse tragen Confidence-Scores. Kritische Mutationen (z.B. Fakturierung, Zahlungen, Buchungen) dürfen niemals ohne menschliche Bestätigung (Review-Task) ausgeführt werden (EU AI Act & GoBD-Primat).
⚡ 4. Transaktionale Outbox & Provenienz
Geschäftsvorfälle erzeugen atomar in derselben Datenbanktransaktion ein Domain Event. Der Outbox-Worker stellt die Ereignisse idempotent an Empfänger und Schnittstellen zu. Jedes Event enthält Metadaten zur lückenlosen Nachvollziehbarkeit (Provenance).
🌐 5. Europäische Multi-Jurisdiktion
Entkopplung von Unternehmenssitz und Meldeort: Ein Mandant in Deutschland kann Meldepflichten in Frankreich, Österreich oder den Niederlanden bedienen. Das System unterstützt 8 Kernsprachen und dynamische Meldeschwellen ohne hardcodierte Länderbedingungen.
🖥️ 6. Server-Rendered UI (No Bloated SPA)
Jinja2-Templates in Kombination mit HTMX und minimalistischem Alpine.js sorgen für blitzschnelle Ladezeiten, robuste Session-Sicherheit, geringen Ressourcenverbrauch und barrierefreie Benutzeroberflächen.