Files
direkt-vermittlung-de/docs/251201-architektur-direktVermittlungDe.txt

291 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
DvdArchitektur
Architektur Dokument für Direkt Vermittlung Deutschland
# Direkt Vermittlung Deutschland Architektur
## 1. Functional Requirements
**Description: Core features and user stories**
### 1.1 Kernfunktionen (auf Beleg fokussiert)
**FR-1 Schreiben erfassen (Document Intake)**
* Bürger:innen können ein behördliches Schreiben als PDF hochladen oder via Kamera erfassen.
* Alternativ: Eingabe eines eindeutigen Merkmals (z. B. Aktenzeichen/Kassenzeichen + Behörde).
* Das System erzeugt einen **DocumentEnvelope** inkl. Metadaten (Aktenzeichen, Belegart, Datum, Absenderbehörde).
**FR-2 Automatisches Routing zur zuständigen Stelle**
* Die Plattform verfügt über eine **Routing-Engine**, die anhand von Metadaten & Konfiguration
* die zuständige Behörde / Organisationseinheit
* und idealerweise den zuständigen Sachbearbeiter ermittelt.
* Fallback-Regeln (z. B. Standard-Team, Zentrale) greifen, wenn keine eindeutige Zuordnung möglich ist.
**FR-3 Interaktionsstart zum Schreiben (Interaction Thread)**
* Bürger:innen können zu einem bestimmten Schreiben:
* eine Rückfrage stellen (Textnachricht),
* einen Rückruf anfragen,
* einen Direktanruf starten (sofern verfügbar),
* einen Terminwunsch äußern.
* Für jede solche Interaktion wird ein **InteractionThread** zum **DocumentEnvelope** angelegt.
**FR-4 Kommunikation & Dokumentaustausch**
* Bürger und Behörde können in einem Thread:
* Nachrichten austauschen,
* ergänzende Belege hochladen (z. B. Nachweise, Antworten),
* interne Notizen (behördenintern, nicht für Bürger sichtbar) anlegen.
* Alle Aktivitäten werden chronologisch protokolliert.
**FR-5 Call-/Rückruf-/Termin-Orchestrierung**
* Das System unterstützt:
* Weitervermittlung bei eingehenden Anrufen anhand eines Merkmals,
* Anlegen & Verwalten von Rückrufanforderungen,
* optionale Terminvereinbarung (Kalenderintegration der Behörde).
**FR-6 Temporäre Vorhaltung & persönliche Ablage**
* Standard: Daten (Schreiben, Threads, Dateien) werden nur bis zur Erledigung + definierter Inaktivitätsfrist gehalten und dann gelöscht.
* Bürger und Behörde können optional eine **verlängerte Aufbewahrung** (persönliche Ablage) buchen/aktivieren.
**FR-7 Datenexport an Behördensysteme**
* Behörden können Daten eines Vorgangs (Schreiben, Metadaten, Interaktionshistorie, Anhänge)
* in ihre eAkte / Fachverfahren exportieren (pull oder push).
* Der Export ist konfigurierbar (welche Daten, welches Format).
---
### 1.2 User Stories (Beispiele)
* *Als Bürger* möchte ich ein behördliches Schreiben scannen oder hochladen können,
damit ich ohne manuelle Zuständigkeitsrecherche direkt den richtigen Ansprechpartner erreiche.
* *Als Sachbearbeiterin* möchte ich alle offenen Vorgänge zu den Schreiben meiner Behörde in einer Liste sehen,
damit ich Rückfragen gezielt bearbeiten und priorisieren kann.
* *Als Behördenadministrator* möchte ich Routingregeln konfigurieren (z. B. nach Aktenzeichenbereichen),
damit Anfragen automatisiert der richtigen Organisationseinheit zugeordnet werden.
* *Als Bürger* möchte ich optional eine längerfristige digitale Ablage wichtiger Schreiben und Klärungsverläufe,
damit ich später auf diese Informationen zugreifen kann.
**Why It Matters:**
Diese Functional Requirements definieren klar, **was** DVD tut:
* Sie trennen sauber zwischen “Beleg”, “Interaktion” und “Routing” → gute Grundlage für REST-/API-Design.
* Sie machen DVD bewusst **beleggesteuert** (nicht generische Kommunikation) und ermöglichen spätere Erweiterungen (z. B. KI-Extraktion, andere Kanäle), ohne das Kernmodell zu brechen.
---
## 2. Non-Functional Requirements
**Description: Performance, security, usability SLAs**
### 2.1 Performance & Skalierung
* **NFR-1:** 95. Perzentil der Antwortzeiten für Kernoperationen (Thread öffnen, Nachricht senden, Routing) < 300 ms bei normaler Last.
* **NFR-2:** System unterstützt mindestens **10k gleichzeitige Sessions** (Behörden + Bürger) pro Region.
* **NFR-3:** Routingentscheidungen werden in < 500 ms getroffen (inkl. Lookups).
### 2.2 Sicherheit & Datenschutz
* **NFR-4:** Vollständige **DSGVO-Konformität**, inkl.
* Recht auf Auskunft, Löschung, Berichtigung,
* dokumentierte Retentions-Policies,
* Privacy-by-Design & by-Default.
* **NFR-5:** End-to-End-Verschlüsselung in Transport (TLS 1.2+) und Verschlüsselung sensibler Daten im Ruhezustand (z. B. Aktenzeichen, PDF-Dokumente).
* **NFR-6:** Zugriff nur auf Basis rollenspezifischer Berechtigungen (least privilege, mandantensicher).
### 2.3 Verfügbarkeit & Resilienz
* **NFR-7:** Zielverfügbarkeit: ≥ 99,5 % im Jahresmittel.
* **NFR-8:** Disaster-Recovery-Konzept mit RPO ≤ 15 min, RTO ≤ 4 h.
### 2.4 Usability
* **NFR-9:** Bürgeroberfläche barrierearm nach WCAG 2.1 AA-Orientierung.
* **NFR-10:** Max. 3 Schritte vom Start bis zur gestellten Anfrage.
**Why:**
Diese NFRs treiben Architekturentscheidungen:
* Asynchrone Verarbeitung, Caching & horizontale Skalierung werden notwendig.
* Strikte IAM- & Verschlüsselungsschichten sind Pflicht in GovTech-Umgebungen.
* Klare SLAs verhindern, dass “Prototyping-Architektur” im Produktivbetrieb kollabiert.
---
## 3. Business Context
**Description: Use cases, target audience, integrations**
### 3.1 Use Cases (Business-Sicht)
* Reduktion der durchschnittlichen **Telefonzeit pro Klärung** (z. B. von 30 auf 10 Minuten).
* Entlastung von Telefonzentralen, Bündelung der Klärung direkt bei den Fachbereichen.
* Schaffung eines digitalen Rückkanals zu behördlichen Schreiben, der nachvollziehbar und sicher ist.
### 3.2 Zielgruppen
* **Primäre Business-Kunden:**
* Kommunalverwaltungen, Gerichtskassen, Amtsgerichte, Landesbehörden, Finanzämter.
* **Endnutzer:innen:**
* Bürger:innen (Privatpersonen, Unternehmen) mit Bescheiden / Schreiben.
* **Sekundäre Stakeholder:**
* Kommunale/regionale IT-Dienstleister, Fachverfahrenshersteller.
### 3.3 Integrationskontext
* eAkte-Systeme der Behörden (unterstützt durch generische Exporte und custom Adapter).
* Identity-Provider (z. B. BundID, eID, SAML/OIDC-basierte Behörden-Singlesignon).
* TK-Anlagen / Callcenter-Software (für Direktvermittlung, Rückruflisten).
* Optional: Dokumentenmanagement / Archivsysteme.
**Why:**
Der Business-Kontext sorgt dafür, dass du die “Nomen” des Systems (DocumentEnvelope, InteractionThread, AuthorityUnit) passend zu realen Strukturen modellierst. Er verhindert, dass du eine “abstrakte Messaging-Plattform” baust, statt eines **belegzentrierten GovTech-Dienstes**.
---
## 4. Technical Constraints
**Description: Existing systems, tech stack, and standards**
*(Hier formuliere ich bewusst Vorschläge, die du später bestätigen/ändern kannst.)*
### 4.1 Architekturparadigmen
* **TC-1:** Service-orientierte / modularisierte Architektur mit klaren Bounded Contexts:
* Citizen & Channels,
* Document & Interaction,
* Routing & Org,
* Integration & Export.
* **TC-2:** Stateless APIs im Frontend-Layer, Session-Handling via Token (JWT/OAuth2), um horizontale Skalierung zu ermöglichen.
### 4.2 Tech Stack (Vorschlag / Beispiel)
* **Backend:** z. B. Java (Spring Boot) oder Go (stark in Gov-Umfeldern verbreitet), Node.js denkbar Standard: REST-APIs, optional GraphQL.
* **Datenbank:** Relationale DB (PostgreSQL) für Kernobjekte; Blob-Storage (z. B. S3-kompatibel) für PDF-Dokumente.
* **Caching:** Redis für Sessions, Routing-Cache und häufige Lookups.
* **Messaging:** Optionale Message-Bus/Queue (z. B. Kafka/RabbitMQ) für Export-Jobs, Notifications.
### 4.3 Standards & Schnittstellen
* **TC-3:** REST/JSON-APIs als Primärschnittstelle; sprechende Ressourcen (z. B. `/documents`, `/threads`, `/exports`).
* **TC-4:** HTTPS/TLS verpflichtend, HSTS aktiviert.
* **TC-5:** OpenAPI-Spezifikation für alle externen APIs (für Behörden & Integrationspartner).
**Why:**
Diese Constraints helfen, früh falsche Technologieentscheidungen auszuschließen und das System **von Anfang an auf Skalierbarkeit & Interoperabilität** auszurichten. OpenAPI-First erleichtert LLM-gestützte Codegenerierung und Mock-APIs.
---
## 5. Stakeholder Feedback
**Description: Early input from consumers (e.g., devs using the API)**
### 5.1 Stakeholder-Gruppen für Feedback
* **Behörden-Fachseite:** Sachbearbeiter:innen und Fachbereichsleitungen
* Fokus: Usability, Prozesslogik, Zuständigkeitsmodell.
* **Behörden-IT:** Architekt:innen, Admins, Datenschutzbeauftragte
* Fokus: Integrationsfähigkeit, Sicherheit, Betriebsmodell.
* **Bürgerperspektive:** Pilot-Testgruppen
* Fokus: Verständlichkeit, Barrierefreiheit, Friktion beim Einstieg (Schreiben hochladen, Merkmal finden etc.).
### 5.2 Feedback-Mechanismen
* Interaktive Mock-UIs / klickbare Prototypen (z. B. Figma) zur frühen Usability-Validierung.
* **Mock-APIs** (z. B. via Postman, Insomnia oder Swagger-UI) zur API-Validierung mit Behördensystemen.
* Kurze Surveys oder Interviews (z. B. „Was ist für Sie das größte Problem bei Rückfragen zu Schreiben?“).
### 5.3 Iterationsschleifen
* Frühzeitige “Pilot-Phase” mit einer kleinen Behörde/Abteilung, bevor generisch ausgebaut wird.
* Veränderungswünsche in **Versionierte API-Designs** überführen (z. B. v1 → v1.1), kein “API-Chaos”.
**Why:**
Stakeholder-Feedback verhindert, dass du an den eigentlichen Bedürfnissen vorbeientwickelst (z. B. zu komplizierte Ablaufsteuerung). Es ist essentiell für **cleanes, *wirklich* extensibles Design**, insbesondere, weil Behörden-IT traditionell komplexe und gewachsene Umfelder hat.
---
## 6. Existing Assets
**Description: Legacy docs, wireframes, or code snippets**
Im Moment sind das bei DVD überwiegend **noch zu definierende** Assets aber hier ist, was du konkret sammeln/erstellen solltest (und wie es der Architektur hilft):
### 6.1 Fachliche Assets
* Beispiel-Briefe aus verschiedenen Behörden (gerichtliche Schreiben, Gebührenbescheide, Steuerbescheide etc.)
* inkl. Struktur der Aktenzeichen/Kassenzeichen (Masken, Beispiele).
* Prozessbeschreibungen, wie Rückfragen heute laufen (IST-Prozess) z. B. BPMN oder einfache Swimlane-Diagramme.
### 6.2 Modell- & Design-Assets
* Erste **Domänenmodelle / UML-Klassendiagramme** für:
* `DocumentEnvelope`, `InteractionThread`, `RoutingRule`, `AuthorityUnit`, `User`.
* Wireframes/Mockups für:
* Bürger-Oberfläche (Schreiben hochladen, Anfrage stellen),
* Sachbearbeiter-Oberfläche (Postkorb, Vorgänge, Antworten).
### 6.3 Technische Assets
* Beispiel-JSON-Payloads für zentrale API-Objekte, z. B.:
```json
{
"documentId": "doc-123",
"organisationId": "court-xyz",
"caseNumber": "12 C 345/25",
"documentType": "PaymentNotice",
"issuedAt": "2025-12-01",
"citizenHint": "Bitte geben Sie dieses Aktenzeichen bei Rückfragen an."
}
```
```json
{
"threadId": "thr-789",
"documentId": "doc-123",
"messages": [
{
"messageId": "msg-1",
"from": "citizen",
"content": "Ich habe eine Frage zur Zahlungsfrist.",
"createdAt": "2025-12-02T09:15:00Z"
}
]
}
```
**Why:**
Diese Assets sind Gold für:
* spätere LLM-Unterstützung (z. B. “Generiere Routing-Regeln basierend auf diesen Beispielbriefen”),
* Reduktion von Missverständnissen bei Domainmodell & API-Design,
* schnellere Implementierung, weil Entwickler konkrete Fälle sehen.
---