The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from this space and version 1.5.40

...

Code Block
   Major=$((version >> 9))  # breaking changes
   Minor=$((version & 511)) # incremental changes

Major - Breaking Changes

Changes in the major version represent a breaking change that will require users of previous schema versions to make code changes for.

Warning
titleBreaking Changes

In order to maintain consistent message normalisation standards, MarketFactory will occasionally have need to make schema changes that break backward compatibility rules. Typically these will be planned releases, with long lead-times.

In such circumstances, the client will be provided with detailed information relating to these changes in Pending Client System Impacts and may need to update to the current Whisperer schema.

Typical breaking changes Changes in the major version represent a breaking change that will require users of previous schema versions to make code changes.Typically, these will be of a straightforward house-keeping nature, including:

...

The SBE protocol standard allows for a degree of backward compatibility via Template Extension rules, to allow message consumers to be using older versions of the message schema than message publishers, and vice versa. The following sections outline the rules and logic required to ensure that backward compatibility problems are reduced to a minimum.

Obviously this backward compatibility is only of use if the added types, fields, or messages are not actually required for the implemented business processes. If the new features are required then the client must of course implement the necessary changes to support the new schema in full.

The following Template Extensionrules ensure backward compatibility:

...

  • sinceVersion - Documents the version of a schema in which a type an element was added
  • deprecated - Documents the version of a schema in which a type an element was deprecated. Updated applications should not publish deprecated messages or values, but declarations may remain in the message schema during a staged migration to replacement message layouts.

...