Synchronizacja
Status dwukierunkowej replikacji danych pomiędzy pamięcią przeglądarki, lokalnym demonem a rejestrem chmurowym z obsługą pracy offline.
1. Diagramy Procesów i Architektury
A. Topologia nawigacji i wywołań akcji
flowchart TD
subgraph S["Kontekst: CONFIG"]
V["Widok: Synchronizacja
Wymuszenie wysyłki lokalnych zmian do chmury"] A_1["sync.resolve
Wybór wersji rozstrzygnięcia konfliktu (Local vs Remote)"] end V --> A_0 V --> A_1
?view=sync"]
end
subgraph Actions["Dostępne akcje i procedury CQRS"]
A_0["sync.pushWymuszenie wysyłki lokalnych zmian do chmury"] A_1["sync.resolve
Wybór wersji rozstrzygnięcia konfliktu (Local vs Remote)"] end V --> A_0 V --> A_1
B. Maszyna stanów i cykl życia operacji
stateDiagram-v2
[*] --> Idle : Wejście do widoku Synchronizacja
Idle --> FormOrFilter : Interakcja z kontrolkami
FormOrFilter --> CQRSCommand : Wywołanie akcji
CQRSCommand --> StateUpdated : Aktualizacja stanu i API
StateUpdated --> Idle : Odświeżenie widoku
C. Sekwencja wykonania CQRS
sequenceDiagram
autonumber
actor U as Użytkownik / Agent
participant UI as Interfejs (Synchronizacja)
participant CQRS as Dyspozytor CQRS
participant API as Backend API (:8891)
participant DB as Baza / Runtime
U->>UI: Kliknięcie / Wywołanie akcji [sync.push]
UI->>CQRS: dispatch('sync.push', data)
CQRS->>API: Żądanie HTTP REST / RPC
API->>DB: Mutacja / Odczyt stanu
DB-->>API: Potwierdzenie zapisu
API-->>CQRS: Wynik operacji + ślad zdarzenia
CQRS-->>UI: Aktualizacja stanu (state)
UI-->>U: Re-render widoku i powiadomienie (toast)
2. Zarejestrowane Polecenia CQRS
| Akcja UI | Procedura URI | URN w kodzie | Opis |
|---|---|---|---|
sync.push | proc://clonerd.dev/cmd/sync/push/v1 | urn:clonerd:code:js:actions:sync#pushChanges | Wymuszenie wysyłki lokalnych zmian do chmury |
sync.resolve | proc://clonerd.dev/cmd/sync/resolve/v1 | urn:clonerd:code:js:actions:sync#resolveConflict | Wybór wersji rozstrzygnięcia konfliktu (Local vs Remote) |
3. Powiązane Endpointy API
| Metoda | Ścieżka REST | Opis |
|---|---|---|
| GET | /api/sync/status | Liczba oczekujących zdarzeń i konfliktów |
| POST | /api/sync/push | Przesłanie partii zmian (SyncChange) |