Context
Enterprise merchants often have multiple team members managing payment configurations. Concurrent edits can lead to conflicts and data loss.
Current Limitation/Problem
Project configuration is single-user. When two team members edit settings simultaneously, last-write-wins causes silent data loss. There is no awareness of other users actions.
Expected Outcome
Real-time collaborative editing using Operational Transform (OT) or CRDTs, with presence indicators showing who is viewing/editing, conflict resolution, and edit history.
Acceptance Criteria
- Multiple users can edit project configuration simultaneously
- Edits are synchronized in real-time via WebSocket (<200ms latency)
- Presence indicators show active users with cursor positions
- Conflict resolution with automatic merging (operational transform)
- Edit history with per-user attribution and rollback capability
- Lock critical sections (API keys, webhook URLs) during edits
- Offline edits queued and synced on reconnection
- Visual diff showing pending and applied changes
Technical Scope
frontend/src/components/collaboration/ - collaborative editing components
- Yjs or ShareDB CRDT library integration
backend/src/websocket/collaboration.ts - WebSocket handler for OT
- Redis pub/sub for broadcasting edits across instances
- Prisma:
ProjectEditHistory model
- Lock Service for critical section mutation prevention
- Edge cases: connection drops, conflicting changes, partial syncs, permissions
Context
Enterprise merchants often have multiple team members managing payment configurations. Concurrent edits can lead to conflicts and data loss.
Current Limitation/Problem
Project configuration is single-user. When two team members edit settings simultaneously, last-write-wins causes silent data loss. There is no awareness of other users actions.
Expected Outcome
Real-time collaborative editing using Operational Transform (OT) or CRDTs, with presence indicators showing who is viewing/editing, conflict resolution, and edit history.
Acceptance Criteria
Technical Scope
frontend/src/components/collaboration/- collaborative editing componentsbackend/src/websocket/collaboration.ts- WebSocket handler for OTProjectEditHistorymodel