JPA für Entity-Mapping; native SQL im QueryBuilder für
volle Kontrolle über Permission-Filter und dynamische
WHERE-Klauseln
Datenbankmigrationen
Flyway
Versionierte, reproduzierbare Schema-Migrationen; Framework liefert
eigene Skripte mit
Multi-DB
PostgreSQL + SQL Server
Behörden haben unterschiedliche Infrastrukturvorgaben; beide
Dialekte werden unterstützt
Build & Distribution
Maven BOM + Artifactory
BOM ermöglicht konsistentes Dependency-Management; Artifactory als
internes Registry
AI-Integration
Spring AI + Azure OpenAI
Regelgenerierung aus Freitext; Spring AI als Abstraktionsschicht für
spätere LLM-Wechselbarkeit
Service Discovery
Apache Curator / ZooKeeper
Optionale verteilte Command-Ausführung über Instanzen hinweg
ID-Generierung
LUID / DB-Sequence / ULID (e-gov-luid)
Sortierbare, gap-tolerante IDs je nach Anforderung der
Applikation
4.2 Top-Level-Zerlegung
Das Framework ist als Maven-Bibliothek strukturiert
— es läuft nicht selbst, sondern wird in Fachapplikationen eingebettet.
Die Zerlegung folgt dem Prinzip Kern + optionale
Erweiterungsmodule:
Convention over Configuration — Spring Boot
Auto-Konfiguration; consuming Apps benötigen nur wenige
egov.*-Properties
Command Pattern für alle Schreiboperationen — jede
fachliche Aktion wird als Command-Entity persistiert;
ermöglicht Audit-Trail und nachvollziehbaren Rollback
Deklarative Autorisierung via Annotationen —
@Ruleset, @AllowedForRoles,
@Validation auf DTOs; Laufzeit-Auswertung durch
ValidationEngine
Row-based Security by Default —
QueryBuilder fügt automatisch Permission-Filter ein; kein
explizites opt-in nötig
Eigene Filter-DSL — ermöglicht dynamische,
ausdrucksstarke WHERE-Klauseln aus REST-Anfragen ohne
SQL-Injection-Risiko
Soft-Delete — Archivierung statt physischem Löschen
via ArchivedModifiableEntity
4.4 Erreichung der
Qualitätsziele
Qualitätsziel
Massnahme
Wartbarkeit
BOM, Convention over Configuration, generische Basisklassen
(BaseRepositoryImpl, BaseExecutor,
BaseAction) minimieren Wiederholung in consuming Apps
Performance Query-Schicht
Nativer JDBC im QueryBuilder statt JPA-Criteria-API;
Permission-Filter direkt in SQL; konfigurierbare Paginierung
Row-based Security
PermissionBuilder erweitert jede SELECT-Abfrage
automatisch um rollenbasierte WHERE-Bedingungen; keine manuelle
Filterung nötig
Stammdatenkonsistenz
Zentrales MDM-Modul mit mehrsprachiger Unterstützung; alle Apps
greifen auf denselben Vokabular-Store zu