Align sync-server record and CRDT transports - #178
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Align the sync server with the adapter-driven client sync model by separating record-sync and CRDT transport handling, preserving legacy record endpoints, and adding per-domain sync telemetry.
Why
Phase 07 requires the server transport to match the new client sync architecture. The existing sync route mixed record and CRDT validation, batching, quota handling, and logging in one place, which made the transport boundary harder to reason about and harder to observe per domain.
How
/sync/records/*aliases while keeping the legacy/sync/push,/sync/pull,/sync/changes,/sync/manifest, and/sync/statusroutes workingprocessRecordPushBatchand reused shared payload hydration helpers in the sync service instead of keeping that orchestration in the route layerSyncTelemetrystructured logs for accepted/rejected record mutations, replay/conflict/quota rejects, per-domain record traffic, CRDT update/snapshot volume, and latency bucketsType
feat— new featurefix— bug fixrefactor— restructure without behavior changestyle— visual/UI onlyperf— performance improvementtest— adding or updating testschore— tooling, deps, configdocs— documentation onlyci— CI/CD changesTest plan
Unit tests added/updated
Integration tests added/updated
Manual testing (describe below)
pnpm --filter @memry/sync-server test -- src/routes/sync.test.ts src/services/sync.test.tspnpm typecheck:sync-serverChecklist