Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
13 KiB

<svg id="mermaid-1607380181881" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="638" style="max-width: 668.2734375px;" viewBox="0 0 668.2734375 638"><style>#mermaid-1607380181881{font-family:"trebuchet ms",verdana,arial;font-size:16px;fill:#333;}#mermaid-1607380181881 .error-icon{fill:#552222;}#mermaid-1607380181881 .error-text{fill:#552222;stroke:#552222;}#mermaid-1607380181881 .edge-thickness-normal{stroke-width:2px;}#mermaid-1607380181881 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1607380181881 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1607380181881 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1607380181881 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1607380181881 .marker{fill:#333333;}#mermaid-1607380181881 .marker.cross{stroke:#333333;}#mermaid-1607380181881 svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;}#mermaid-1607380181881 .label{font-family:"trebuchet ms",verdana,arial;color:#333;}#mermaid-1607380181881 .label text{fill:#333;}#mermaid-1607380181881 .node rect,#mermaid-1607380181881 .node circle,#mermaid-1607380181881 .node ellipse,#mermaid-1607380181881 .node polygon,#mermaid-1607380181881 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1607380181881 .node .label{text-align:center;}#mermaid-1607380181881 .node.clickable{cursor:pointer;}#mermaid-1607380181881 .arrowheadPath{fill:#333333;}#mermaid-1607380181881 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1607380181881 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1607380181881 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1607380181881 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1607380181881 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1607380181881 .cluster text{fill:#333;}#mermaid-1607380181881 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial;font-size:12px;background:hsl(80,100%,96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1607380181881:root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-1607380181881 .framing &gt; *{fill:#FFD700 !important;stroke:#333 !important;}#mermaid-1607380181881 .framing tspan{!important;}#mermaid-1607380181881 flowchart{fill:apa;}</style><g><g class="output"><g class="clusters"></g><g class="edgePaths"><g class="edgePath LS-SubscribeIndex0 LE-Snapshot" id="L-SubscribeIndex0-Snapshot" style="opacity: 1;"><path class="path" d="M172.29678721910113,47L68.7109375,72L68.7109375,97L68.7109375,122L68.7109375,166.5L68.7109375,220.5L68.7109375,274.5L68.7109375,319L68.7109375,344L68.7109375,378.5L126.48296440972223,413" marker-end="url(#arrowhead8779)" style="fill:none"></path><defs><marker id="arrowhead8779" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-Snapshot LE-EndOfSnapshot" id="L-Snapshot-EndOfSnapshot" style="opacity: 1;"><path class="path" d="M159.13671875,452L159.13671875,477L211.92156776685394,502" marker-end="url(#arrowhead8780)" style="fill:none"></path><defs><marker id="arrowhead8780" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-SubscribeIndex0 LE-EndOfSnapshot" id="L-SubscribeIndex0-EndOfSnapshot" style="opacity: 1;"><path class="path" d="M333.89071278089887,47L437.4765625,72L437.4765625,97L437.4765625,122L437.4765625,166.5L437.4765625,220.5L437.4765625,274.5L437.4765625,319L437.4765625,344L437.4765625,378.5L437.4765625,432.5L437.4765625,477L316.5078125,506.19528833524004" marker-end="url(#arrowhead8781)" style="fill:none"></path><defs><marker id="arrowhead8781" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-EndOfSnapshot LE-EventStream" id="L-EndOfSnapshot-EventStream" style="opacity: 1;"><path class="path" d="M253.09375,541L253.09375,566L287.1944346910112,591" marker-end="url(#arrowhead8782)" style="fill:none"></path><defs><marker id="arrowhead8782" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-SubscribeIndexNot0 LE-NewSnapshotToFollow" id="L-SubscribeIndexNot0-NewSnapshotToFollow" style="opacity: 1;"><path class="path" d="M249.5625,186L249.5625,220.5L249.5625,255" marker-end="url(#arrowhead8783)" style="fill:none"></path><defs><marker id="arrowhead8783" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-NewSnapshotToFollow LE-Snapshot" id="L-NewSnapshotToFollow-Snapshot" style="opacity: 1;"><path class="path" d="M249.5625,294L249.5625,319L249.5625,344L249.5625,378.5L191.79047309027777,413" marker-end="url(#arrowhead8784)" style="fill:none"></path><defs><marker id="arrowhead8784" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-SubscribeIndexNot0 LE-EventStream" id="L-SubscribeIndexNot0-EventStream" style="opacity: 1;"><path class="path" d="M361.25868055555554,186L558.875,220.5L558.875,274.5L558.875,319L558.875,344L558.875,378.5L558.875,432.5L558.875,477L558.875,521.5L558.875,566L369.23828125,600.4326915414163" marker-end="url(#arrowhead8785)" style="fill:none"></path><defs><marker id="arrowhead8785" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(68.7109375,220.5)" style="opacity: 1;"><g transform="translate(-60.7109375,-9.5)" class="label"><rect rx="0" ry="0" width="121.421875" height="19"></rect><foreignObject width="121.421875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-SubscribeIndex0-Snapshot" class="edgeLabel L-LS-SubscribeIndex0' L-LE-Snapshot">if events in topic</span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-Snapshot-EndOfSnapshot" class="edgeLabel L-LS-Snapshot' L-LE-EndOfSnapshot"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(437.4765625,274.5)" style="opacity: 1;"><g transform="translate(-64.140625,-9.5)" class="label"><rect rx="0" ry="0" width="128.28125" height="19"></rect><foreignObject width="128.28125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-SubscribeIndex0-EndOfSnapshot" class="edgeLabel L-LS-SubscribeIndex0' L-LE-EndOfSnapshot">no events in topic</span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-EndOfSnapshot-EventStream" class="edgeLabel L-LS-EndOfSnapshot' L-LE-EventStream"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(249.5625,220.5)" style="opacity: 1;"><g transform="translate(-100.140625,-9.5)" class="label"><rect rx="0" ry="0" width="200.28125" height="19"></rect><foreignObject width="200.28125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-SubscribeIndexNot0-NewSnapshotToFollow" class="edgeLabel L-LS-SubscribeIndexNot0' L-LE-NewSnapshotToFollow">if index != TopicBuffer.Head</span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-NewSnapshotToFollow-Snapshot" class="edgeLabel L-LS-NewSnapshotToFollow' L-LE-Snapshot"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(558.875,378.5)" style="opacity: 1;"><g transform="translate(-101.3984375,-9.5)" class="label"><rect rx="0" ry="0" width="202.796875" height="19"></rect><foreignObject width="202.796875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-SubscribeIndexNot0-EventStream" class="edgeLabel L-LS-SubscribeIndexNot0' L-LE-EventStream">if index == TopicBuffer.Head</span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-SubscribeIndex0-5360" transform="translate(253.09375,27.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-129.890625" y="-19.5" width="259.78125" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-119.890625,-9.5)"><foreignObject width="239.78125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Subscribe, index = 0, no snapshot</div></foreignObject></g></g></g><g class="node default" id="flowchart-SubscribeIndexNot0-5361" transform="translate(249.5625,166.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-137.0078125" y="-19.5" width="274.015625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-127.0078125,-9.5)"><foreignObject width="254.015625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Subscribe, index &gt; 0, with snapshot</div></foreignObject></g></g></g><g class="node default" id="flowchart-Snapshot-5363" transform="translate(159.13671875,432.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-41.953125" y="-19.5" width="83.90625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-31.953125,-9.5)"><foreignObject width="63.90625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Snapshot</div></foreignObject></g></g></g><g class="node framing" id="flowchart-EndOfSnapshot-5365" transform="translate(253.09375,521.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-63.4140625" y="-19.5" width="126.828125" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-53.4140625,-9.5)"><foreignObject width="106.828125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">EndOfSnapshot</div></foreignObject></g></g></g><g class="node default" id="flowchart-EventStream-5369" transform="translate(313.79296875,610.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-55.4453125" y="-19.5" width="110.890625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-45.4453125,-9.5)"><foreignObject width="90.890625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">EventStream</div></foreignObject></g></g></g><g class="node framing" id="flowchart-NewSnapshotToFollow-5371" transform="translate(249.5625,274.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-88.7734375" y="-19.5" width="177.546875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-78.7734375,-9.5)"><foreignObject width="157.546875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">NewSnapshotToFollow</div></foreignObject></g></g></g></g></g></g></svg>