CRDT Sync Validation Demo #129

Closed
opened 2025-12-17 13:59:16 +00:00 by siennathesane · 0 comments
siennathesane commented 2025-12-17 13:59:16 +00:00 (Migrated from github.com)

Description

In order to validate CRDT synchronization in v0,
as a Marathon developer,
I need to create a demo application where two desktop clients create/move/delete simple colored cubes and verify state convergence.

Acceptance Criteria

Scenario: State synchronizes across clients
  Given two desktop clients are connected
  When client A creates a cube
  Then client B sees the same cube

Scenario: Concurrent modifications converge
  Given two desktop clients are connected
  When both clients modify the same cube simultaneously
  Then both clients converge to the same final state

Scenario: Deletes propagate correctly
  Given a cube exists on both clients
  When client A deletes the cube
  Then client B removes the cube

Scenario: Changes propagate within acceptable latency
  Given two desktop clients are connected
  When client A makes a change
  Then client B sees the change within 100ms

Technical Notes

  • Dependencies: #128 (SQLite schema) for optional persistence
  • Approach:
    • Simple cube manipulation client (CLI or minimal GUI)
    • Test with 2-4 simulated peers
    • Log state changes for verification
    • Measure sync latency
  • Files affected:
    • New: crates/app/examples/crdt_sync_demo.rs
    • Modify: CRDT sync implementation as needed

Additional Context

Part of v0 Core Tech Validation. Desktop only (macOS). This validates the fundamental multiplayer tech.

## Description In order to validate CRDT synchronization in v0, as a Marathon developer, I need to create a demo application where two desktop clients create/move/delete simple colored cubes and verify state convergence. ## Acceptance Criteria ```gherkin Scenario: State synchronizes across clients Given two desktop clients are connected When client A creates a cube Then client B sees the same cube Scenario: Concurrent modifications converge Given two desktop clients are connected When both clients modify the same cube simultaneously Then both clients converge to the same final state Scenario: Deletes propagate correctly Given a cube exists on both clients When client A deletes the cube Then client B removes the cube Scenario: Changes propagate within acceptable latency Given two desktop clients are connected When client A makes a change Then client B sees the change within 100ms ``` ## Technical Notes - Dependencies: #128 (SQLite schema) for optional persistence - Approach: - Simple cube manipulation client (CLI or minimal GUI) - Test with 2-4 simulated peers - Log state changes for verification - Measure sync latency - Files affected: - New: `crates/app/examples/crdt_sync_demo.rs` - Modify: CRDT sync implementation as needed ## Additional Context Part of v0 Core Tech Validation. Desktop only (macOS). This validates the fundamental multiplayer tech.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: studio/marathon#129