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. ---