CenterForDigitalHumanities / CenterForDigitalHumanities/TPEN-services

Collab Phase 5: Durable Flush Worker from Drafts to RERUM with Conflict Acks

Open
#511 2 comments 0 reactions 0 assignees View on GitHub
backend collaboration cross-repo deferred-persistence phase-5
Dominant language
JavaScript
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary
Create server-side durable flush pipeline that coalesces draft operations and commits to RERUM with optimistic locking.

## Scope
- Batch and coalesce queued operations by line.
- Persist through existing Line/Page update flow.
- Use optimistic locking for overwrite conflict detection.
- Emit durable events: queued, started, persisted, conflict, failed.
- Return durable revision metadata in ack payload.

## Acceptance Criteria
- Multiple rapid edits are coalesced into fewer durable writes.
- 409 conflicts are emitted as durable conflict events with context.
- Persisted acknowledgements include durable revision references.
- Backpressure limits prevent unbounded growth.

## Dependencies
- Depends on draft intake issue.
- Contract: docs/collaboration/websocket-collaboration-contract.md

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.