Zum Inhalt springen
Platz sichern

Architektur: Steuerung und Dateidaten sind getrennt

Eine Übertragung hat zwei Aufgaben: klären, wer was an wen senden darf, und die verschlüsselten Bytes bewegen. pipeit hält sie auseinander.

Eine Übertragung hat zwei Aufgaben: klären, wer was an wen senden darf, und die verschlüsselten Bytes zum Empfänger bringen. pipeit trennt diese Aufgaben. Die Online-API verwaltet Konten, Geräte, Freigaben, Aufträge und Zustände. Der Datenweg kann direkt zwischen Endpunkten verlaufen oder über das Relay (Serverweg) führen. Ein Wechsel des Datenwegs verändert nicht automatisch den Empfänger oder die Bedeutung des Auftrags.

DiagrammSteuerung und Dateidaten gehen getrennte WegeDiagramm: Sender und Empfänger sprechen mit der pipeit-API über Anmeldung, Freigaben, Annahme und Belege. Die verschlüsselten Dateidaten gehen direkt vom Sender zum Empfänger oder alternativ über ein Relay, das keine Datei speichert. Die API nutzt eine Datenbank, einen Speicher für Limits und Hintergrundarbeit.
  1. SenderAnmeldung, Freigaben, AuftragSteuerung und Berechtigungenpipeit-API
  2. EmpfängerAnnahme, Zustand, BelegeSteuerung und Berechtigungenpipeit-API
  3. SenderVerschlüsselte Dateidaten, direktDateidatenEmpfänger
  4. SenderAlternativ: verschlüsselte FramesAlternativer WegRelay
  5. RelayWeiterleitung ohne DateiablageAlternativer WegEmpfänger
  6. pipeit-APIDauerhafter ZustandSteuerung und BerechtigungenDatenbank
  7. pipeit-APIBegrenzte Budgets und LeasesSteuerung und BerechtigungenLimitspeicher
  8. pipeit-APIEreignisse und JobsSteuerung und BerechtigungenHintergrundarbeit

Die beiden Datenwege sind Alternativen, keine parallele Doppelsendung. Auch bei direktem Online-Dateitransport kann die API für Autorisierung, Verbindungsaufbau und Status benötigt werden. Nahbereichsübertragungen zwischen den pipeit-Apps und die lokale Kopplung nativer Clients arbeiten ohne die Online-API; der Empfangsbeleg wird beim nächsten Onlinekontakt nachgereicht.

BausteinAufgabeNicht seine Aufgabe
Go/Chi-APIFachregeln, Berechtigungen, Zustände und HTTP-VerträgeDateiinhalte für den normalen Ende-zu-Ende-Transfer entschlüsseln
PostgreSQL und sqlcDauerhafte Fachzustände, Versionen, atomare EntscheidungenNutzdaten aller Liveübertragungen als Blobs speichern
RedisBegrenzte gemeinsame Budgets und Belegungen oder LeasesEine unbegrenzte Dateiwarteschlange
NATS/JetStream und WorkerEreignisverarbeitung und HintergrundaufgabenDer Dateibytestrom einer Übertragung
WebSocket- und native TransportadapterVerschlüsselte Frames zwischen autorisierten Endpunkten bewegenEigenständig Kontorechte erfinden
S3-kompatibler SpeicherSpeicher für gesonderte Profile, darunter die pipeit Cloud, und betriebliche SpeicheraufgabenAutomatisches Backup jeder aktuellen Liveübertragung
React/TypeScript-Webapp und native ClientsAuswahl, lokale Schlüssel, Kryptografie, Dateizugriff, BedienungEigene abweichende Bedeutung von „zugestellt“
OpenAPI und gemeinsames Go-SDKVersionierte Schnittstellen und wiederverwendbare native AbläufeErsatz für die eigene Datei- und Schlüsselbehandlung jedes Clients

Wische seitwärts, um die ganze Tabelle zu sehen.

Warum die Fachlogik zentral bleibt

Jeder Client zeigt denselben Übertragungszustand gleich an. Ein Serverdaemon darf dieselbe Empfängerblockade nicht als Erfolg interpretieren, die im Browser einen Fehler ergibt. Umgekehrt kann das Backend nicht prüfen, ob ein lokaler Ordner unter dem Dienstbenutzer beschreibbar ist. Diese Prüfung gehört in die gemeinsame native Dateibibliothek; die Empfangsfreigabe und die erlaubten Aktionen bleiben Teil des gemeinsamen Vertrags.