Files
MABEA/arbeitskacheln/19_satelliten_server.md
T
patrickandClaude Sonnet 5 2bd97aa435
CI / backend-tests (push) Failing after 1m57s
CI / frontend-build (push) Successful in 18s
docs: alte arbeitskarten (Karte 01-14) gegen arbeitskacheln-Backlog abgeglichen
7 Karten (02,03,06,09,10,11,14) inhaltlich bereits abgedeckt - gelöscht.
7 Karten (01,04,05,07,08,12,13) enthielten nicht erfasste Inhalte:
- neues Epic 17 Zuständigkeit (Karte 01+04)
- neues Epic 18 Notifications/Eskalation (Karte 05+12)
- neues Epic 19 Satelliten-Server (Karte 13, zurückgestellt)
- INV-006 ergänzt um Sofort-Nachfüllung (Karte 07) + Mindermengen-Gültigkeit (Karte 08)

arbeitskarten/ ist damit aufgelöst, nur Index mit Verweis auf arbeitskacheln bleibt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-05 17:06:42 +02:00

64 lines
3.9 KiB
Markdown

# Epic 19 — Satelliten-Server
Details zu SAT-001 (Platzhalter/Architektur-Vorbereitung). Übernommen aus
`arbeitskarten/13_satelliten_server.md` (Karte 13) — die größte gefundene Lücke im
16-Epic-Backlog: eine bereits "entschieden" gewertete Architektur-Erweiterung mit
konkreten Datenmodell-Konsequenzen, die in keinem der 16 ursprünglichen Epics erwähnt war.
---
## SAT-001 — Hauptserver mit Satelliten-Servern
- **Ziel:** Zusätzlich zum Hauptserver können Satelliten-Server existieren, die lokal
(Einsatzort/Wache) laufen und temporär vom Hauptserver getrennt sind — für KatS-
Einsatzlagen ohne Internet, Wachen mit dauerhaft schlechter Anbindung, oder reinen
Ausfallschutz.
- **Beschreibung:** Satellit ist funktional ein vollwertiger, kleiner Hauptserver-Klon
(gleiche Software/API/DB), kein reiner Cache — mehrere Mitarbeiter können gleichzeitig
am Satelliten arbeiten. Autark-Dauer bewusst nicht zeitlich begrenzt (Stunden bis Tage).
Konfliktvermeidung statt Konfliktlösung: jedes Objekt ist während einer Trennung fest
genau einem Server zugeordnet (Haupt- oder ein bestimmter Satellit), am jeweils anderen
für Schreibzugriffe gesperrt — dadurch strukturell kein "wer gewinnt"-Problem.
- **Benutzerwert:** Betrieb bleibt auch bei längerem/vollständigem Verbindungsverlust
einsatzfähig, ohne Datenkonflikte beim späteren Zusammenführen.
- **Abhängigkeiten:** FOUND-002, ASSET-003, MOBILE-003 (Abgrenzung: Satellit ist die
Lösung für ganze Standorte über längere Zeit, MOBILE-003 für Kurzzeit-Netzlücken
innerhalb einer einzelnen Kontrolle)
- **Datenmodell:** Objekt braucht Feld "aktuell zugeordneter Server" (Hauptserver-ID oder
Satelliten-ID), änderbar nur durch bewussten Auslagerungs-/Rückhol-Vorgang. IDs
systemweit eindeutig von Anfang an (kein lokal generierter, kollisionsanfälliger Schlüssel)
— Voraussetzung für widerspruchsfreies Zusammenführen. Sync überträgt neu entstandene
Datensätze per Insert und geänderte bestehende Zeilen (offene Fehlbestände, aktive
Mindermengen-Genehmigungen, Objektpositionen) per Upsert.
- **Backend:** Auslagerungs-/Rückhol-Endpunkte, Sync-Logik (Insert+Upsert), Schreibsperre
für ausgelagerte Objekte am Hauptserver
- **Frontend:** Admin-UI zum Auslagern/Zurückholen
- **Mobile:** kein Unterschied — Satellit spricht dieselbe API
- **QR-Code/Seriennummer/Inventarnummer:** nein
- **Akte:** zeigt ggf. aktuellen Server-Zuordnungsstatus
- **Rechte:** Auslagerung/Rückholung: Administrator
- **Audit:** Auslagerung/Rückholung geloggt, Sync-Vorgänge nachvollziehbar
- **Akzeptanzkriterien:** Objekt an Satellit auslagern → am Hauptserver für Schreiben
gesperrt; nach Rückholung sind alle am Satelliten entstandenen/geänderten Daten korrekt
im Hauptserver.
- **Tests:** Sync-Test (Insert neuer Datensätze + Upsert geänderter bestehender Zeilen),
Schreibsperre-Test während Auslagerung.
- **DoD:** **DECISION REQUIRED zum Umsetzungszeitpunkt** — Nutzer-Entscheidung aus
früherer Session: "erstmal nur mit Hauptserver", also bewusst zurückgestellt. Offene
Punkte vor Umsetzung: technischer Auslöser der Auslagerung (manuell vs. automatisch bei
Verbindungsverlust), Vorab-Bestückung des Satelliten mit Stammdaten, Verhalten bei
laufender Kontrolle während Auslagerung/Rückholung, Hardware-Anforderung.
---
**MABEA-Ist-Stand-Abgleich:** nicht umgesetzt, bewusst zurückgestellt (Nutzer-Entscheidung
"erstmal nur mit main server gemacht"). Diese Epic-Datei existierte bislang nicht — reine
Nachdokumentation der bereits getroffenen Architektur-Entscheidung, damit sie im Backlog
nicht verloren geht, bis ein konkreter Bedarf zur Umsetzung führt.
## Referenzen
Alte Arbeitskarte (übernommen, Karten-Datei gelöscht): Karte 13 Hauptserver mit
Satelliten-Servern.
Weiterhin gültige Detail-Referenz (nicht gelöscht, eigenständiges Prompt-Ergebnisdokument):
`ergebnisse/17_mobile_offline.md` Abschnitt 7, `ergebnisse/20_datenbank_schema.md` Punkt 10.