CenterForDigitalHumanities / CenterForDigitalHumanities/TPEN-services

Collab Phase 3: Draft Buffer API and Operation Intake for Deferred Persistence

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

Description

## Summary
Add transient draft operation intake and storage so interfaces can submit collaborative edits without immediate durable RERUM writes.

## Scope
- Add draft operation intake endpoint(s) for line text and bounds patches.
- Store coalesced transient draft state by project/page/line/user.
- Emit op accepted or rejected acknowledgements.
- Fanout accepted operations to websocket room members.
- Add validation and limits for payload size and queue depth.

## Acceptance Criteria
- Draft operations are accepted and visible to collaborators in realtime.
- Duplicate retry submissions are deduplicated by idempotency key.
- No durable RERUM write occurs in this phase.
- Rejected operations return machine-readable reason.

## Dependency
- Depends on websocket skeleton issue.

Contributor guide

Open the contributing guide

Research direction

Begin by reviewing the websocket skeleton issue, which this work depends on, then locate the service entry points for HTTP intake, websocket rooms, and transient storage. Done means accepted drafts are visible to collaborators, retries are deduplicated, rejected payloads return machine-readable reasons, limits are enforced, and no durable RERUM write occurs.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.