Skip to navigation

Versions and generations

View as Markdown

Filter changes, retained history and connection incarnations have independent identities.

FieldScopeClient handling
version, hello.versionsWire framesValidate supported wire version
schemaEvent schemaSelect a supported event decoder
rulesVersionInterpretation rulesSave with the data; do not mix incompatible interpretations
streamIdStream identityValidate during recovery
historyGenerationRetained historyDo not treat another history as continuous
generationSubscription filter bindingUse the accepted generation in ACK; changes on rebind
filterHash, filterPolicyVersionExact predicate and routing policyPreserve the server binding
retention.policyVersionRetention policyDistinct from subscription generation
assessmentRevisionEntity assessmentUpdate existing state rather than adding volume

Unsupported values

Do not mutate your projection when you cannot interpret the protocol or a required payload. Preserve the last agreed checkpoint and safe diagnostics. Unknown optional fields can be tolerated where the applicable contract permits; unknown economic enums or stages need explicit unsupported handling. Client requests remain strict about unknown fields.

An unrecognized correction cannot be ACKed as though its effects were correctly applied. Never default an unknown side to buy or sell.

Updating a client

Check message shapes, null versus absence, decimal values, corrections and resume of saved tokens. Do not replace the consumer identity to bypass incompatibility. Filter changes use rebind or an agreed new start.

onchain.lifecycle.v1 and wire version 1 do not establish indefinite compatibility with future versions. See frames and events.