C3Sync / Contributing
Updated 2026-07-21 · C3Sync wire-compat-policy.md
Wire compatibility
This page is for contributors changing the synchronization protocol.
Scheme versions
Subjects and durable consumer identities embed a scheme version. A breaking change must use a new scheme instead of silently reinterpreting stored events from an older release.
Compatibility rules
- New readers must reject envelopes whose required scheme or algorithm is unsupported.
- Cryptographic algorithm identifiers are authenticated and must not be treated as cosmetic metadata.
- Durable consumer names must remain stable within a scheme so reconnecting peers continue from the correct position.
- Enrollment credentials remain scoped to the PAKE exchange and cannot subscribe to project data.
Change checklist
Before changing the wire format, update protocol constants, migration behavior, mixed-version tests, security documentation, and the black-box end-to-end suite. Never reuse an existing scheme number for an incompatible meaning.