All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cluster.aeron-cluster-node-state-codecs.xml Maven / Gradle / Ivy

There is a newer version: 1.48.0
Show newest version
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
Codec for the persistent local state of a cluster node.
-->
<sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2016/sbe"
                   package="io.aeron.cluster.codecs.node"
                   id="112"
                   version="10"
                   semanticVersion="5.3"
                   description="Message Codecs for the persistent state of a node in Aeron Cluster.">
    <types>
        <composite name="messageHeader" description="Message identifiers and length of message root.">
            <type name="blockLength"    primitiveType="uint16"/>
            <type name="templateId"     primitiveType="uint16"/>
            <type name="schemaId"       primitiveType="uint16"/>
            <type name="version"        primitiveType="uint16"/>
            <type name="frameLength"    primitiveType="int32"/>
            <type name="padding"        primitiveType="int32"/>
        </composite>
        <composite name="groupSizeEncoding" description="Repeating group dimensions.">
            <type name="blockLength"    primitiveType="uint16"/>
            <type name="numInGroup"     primitiveType="uint16"/>
        </composite>
        <composite name="varAsciiEncoding" description="Variable length ASCII string header.">
            <type name="length"         primitiveType="uint32" maxValue="1073741824"/>
            <type name="varData"        primitiveType="uint8" length="0" characterEncoding="US-ASCII"/>
        </composite>
        <type name="time_t" primitiveType="int64" description="Epoch time in milliseconds since 1 Jan 1970 UTC."/>
    </types>

    <sbe:message name="nodeStateHeader" id="300">
        <field name="version" id="1" type="int32"/>
        <field name="padding" id="2" type="int32"/>
    </sbe:message>

    <sbe:message name="candidateTerm" id="301">
        <field name="candidateTermId"   id="1" type="int64"/>
        <field name="timestamp"         id="2" type="time_t"/>
        <field name="logPosition"       id="3" type="int64"/>
    </sbe:message>

    <sbe:message name="ClusterMembers"
                 id="303"
                 description="Serialised state of Cluster Members.">
        <field name="leadershipTermId"         id="1" type="int64"/>
        <field name="memberId"                 id="2" type="int32"/>
        <field name="highMemberId"             id="3" type="int32"/>
        <data  name="clusterMembers"           id="4" type="varAsciiEncoding"/>
    </sbe:message>

    <sbe:message name="nodeStateFooter" id="304"/>

</sbe:messageSchema>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy