[VS-NfD] Add a dedup window so Yjs sync does not flood the trail #223
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#223
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Plan reference:
20-massnahmenplan.md-> Phase 3, Variante AADR: ADR 0023
Effort: M (2 AT)
Depends on: #222
Context
A live editing session produces continuous traffic; one event per message
is both useless as evidence and a performance problem. One session plus one
page within N minutes is one read.
Current state
pages.ydoc_stateplus apage_updateslog; collabpersistence is debounced (~2 s) and sessions are long-lived
(
apps/collab/src/persistence.ts, session registry inapps/collab/src/session-registry.ts).Acceptance criteria
configurable, with a documented default.
states that it represents a window, not a single request — so the
evidence is not misread.
session does, even for the same user.
of events (measured figure recorded in the PR).
what the trail can and cannot prove.
Out of scope
Buffered writing for a high-volume all-reads variant (Variant B).
Implemented in PR #279 (commit
fd4fd60), contained in the merged chain (PR #281, run 596 green; own run 592 failed only on runner infra). Aligned dedup windows via unique (dedup_key, window_bucket) - race-free insert-or-skip; readTrail.dedupWindowMinutes default 5, documented in the hardening guide; rows carry windowSeconds so the evidence states it represents a window. Load evidence: 30 collab-token renewals inside one window = exactly 1 event (test), bounding a live session at ~12 events/hour/page. Reconnect/new-session/channel-separation/window-rollover each tested (6 tests). ADR 0023 and the security documentation state what the trail can and cannot prove.