Skip to content

CborCheckpointStoreAdapter owns general CRDT serialization #379

Description

@flyingrobots

Migrated from Method backlog

GitHub Issues are now the live work tracker. Repository docs remain Method evidence.

Field Value
Source backlog docs/method/backlog/bad-code/SUB_cbor-checkpoint-crdt-serialization.md
Archived source docs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/bad-code/SUB_cbor-checkpoint-crdt-serialization.md
Original lane bad-code
Original id SUB_cbor-checkpoint-crdt-serialization
Original legend SUB
Original feature trie-state-storage
Original release home v17.0.0

Original backlog card

CborCheckpointStoreAdapter owns general CRDT serialization

Effort: M

CborCheckpointStoreAdapter.js (~366 LOC) carries full CRDT
serialization logic for LWW registers, ORSet entries, edge birth
events, and property maps. This serialization is general-purpose
CRDT encoding, not checkpoint-specific.

What's wrong

  • S concern: The adapter should orchestrate read/write against
    the blob port, not own the full serialize/deserialize for every
    CRDT type.
  • If another adapter needs CRDT serialization (e.g., a future
    snapshot export), the logic would be duplicated.

Suggested fix

Extract CRDT serialization to a CrdtCodec or StateCodec module
in src/infrastructure/codecs/. The checkpoint adapter calls it
for encode/decode, then writes blobs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:storagePrimary work area: storage.priority:laterDeferred or speculative work.status:availableOpen and available for prioritization; not blocked or actively in progress.type:debtDebt, rot, or structural risk.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions