open-consul/docs/rpc/streaming/overview.svg

1 line
22 KiB
XML

<svg id="mermaid-1607376911734" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="708" style="max-width: 843.8984375px;" viewBox="0 0 843.8984375 708"><style>#mermaid-1607376911734{font-family:"trebuchet ms",verdana,arial;font-size:16px;fill:#333;}#mermaid-1607376911734 .error-icon{fill:#552222;}#mermaid-1607376911734 .error-text{fill:#552222;stroke:#552222;}#mermaid-1607376911734 .edge-thickness-normal{stroke-width:2px;}#mermaid-1607376911734 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1607376911734 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1607376911734 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1607376911734 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1607376911734 .marker{fill:#333333;}#mermaid-1607376911734 .marker.cross{stroke:#333333;}#mermaid-1607376911734 svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;}#mermaid-1607376911734 .label{font-family:"trebuchet ms",verdana,arial;color:#333;}#mermaid-1607376911734 .label text{fill:#333;}#mermaid-1607376911734 .node rect,#mermaid-1607376911734 .node circle,#mermaid-1607376911734 .node ellipse,#mermaid-1607376911734 .node polygon,#mermaid-1607376911734 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1607376911734 .node .label{text-align:center;}#mermaid-1607376911734 .node.clickable{cursor:pointer;}#mermaid-1607376911734 .arrowheadPath{fill:#333333;}#mermaid-1607376911734 .edgePath .path{stroke:#333333;stroke-width:1.5px;}#mermaid-1607376911734 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1607376911734 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-1607376911734 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-1607376911734 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1607376911734 .cluster text{fill:#333;}#mermaid-1607376911734 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-1607376911734:root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-1607376911734 .start &gt; *{fill:transparent !important;stroke:transparent !important;}#mermaid-1607376911734 .start tspan{!important;}#mermaid-1607376911734 flowchart{fill:apa;}</style><g><g class="output"><g class="clusters"><g class="cluster" id="flowchart-ServerAgent-67929" transform="translate(614.82421875,455.5)" style="opacity: 1;"><rect width="442.1484375" height="489" x="-221.07421875" y="-244.5"></rect><g class="label" transform="translate(0, -230.5)" id="mermaid-1607376911734Text"><g transform="translate(-45.765625,-9.5)"><foreignObject width="91.53125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Server Agent</div></foreignObject></g></g></g><g class="cluster" id="flowchart-ClientAgent-67930" transform="translate(190.875,287.5)" style="opacity: 1;"><rect width="365.75" height="381" x="-182.875" y="-190.5"></rect><g class="label" transform="translate(0, -176.5)" id="mermaid-1607376911734Text"><g transform="translate(-44.3828125,-9.5)"><foreignObject width="88.765625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Client Agent</div></foreignObject></g></g></g></g><g class="edgePaths"><g class="edgePath LS-Read LE-HTTPEndpoint" id="L-Read-HTTPEndpoint" style="opacity: 1;"><path class="path" d="M164.796875,42.149276179733036L109.046875,72L109.046875,97L109.046875,122" marker-end="url(#arrowhead66170)" style="fill:none"></path><defs><marker id="arrowhead66170" 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-Read LE-DNSEndpoint" id="L-Read-DNSEndpoint" style="opacity: 1;"><path class="path" d="M219.515625,42.149276179733036L275.265625,72L275.265625,97L275.265625,122" marker-end="url(#arrowhead66171)" style="fill:none"></path><defs><marker id="arrowhead66171" 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-HTTPEndpoint LE-rpcClient.Health" id="L-HTTPEndpoint-rpcClient.Health" style="opacity: 1;"><path class="path" d="M109.046875,161L109.046875,186L109.046875,211L155.73753511235955,236" marker-end="url(#arrowhead66172)" style="fill:none"></path><defs><marker id="arrowhead66172" 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-DNSEndpoint LE-rpcClient.Health" id="L-DNSEndpoint-rpcClient.Health" style="opacity: 1;"><path class="path" d="M275.265625,161L275.265625,186L275.265625,211L228.57496488764045,236" marker-end="url(#arrowhead66173)" style="fill:none"></path><defs><marker id="arrowhead66173" 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-rpcClient.Health LE-AgentCache" id="L-rpcClient.Health-AgentCache" style="opacity: 1;"><path class="path" d="M192.15625,275L192.15625,300L192.15625,325" marker-end="url(#arrowhead66174)" style="fill:none"></path><defs><marker id="arrowhead66174" 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-AgentCache LE-MaterializedView" id="L-AgentCache-MaterializedView" style="opacity: 1;"><path class="path" d="M192.15625,364L192.15625,389L192.15625,414" marker-end="url(#arrowhead66175)" style="fill:none"></path><defs><marker id="arrowhead66175" 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-MaterializedView LE-SubscribeEndpoint" id="L-MaterializedView-SubscribeEndpoint" style="opacity: 1;"><path class="path" d="M192.15625,453L192.15625,478L504.5234375,503L504.5234375,528" marker-end="url(#arrowhead66176)" style="fill:none"></path><defs><marker id="arrowhead66176" 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-SubscribeEndpoint LE-EventPublisher" id="L-SubscribeEndpoint-EventPublisher" style="opacity: 1;"><path class="path" d="M504.5234375,567L504.5234375,601.5L570.7956814236111,636" marker-end="url(#arrowhead66177)" style="fill:none"></path><defs><marker id="arrowhead66177" 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-Write LE-RPCEndpoint" id="L-Write-RPCEndpoint" style="opacity: 1;"><path class="path" d="M711.984375,161L711.984375,186L711.984375,211L711.984375,236" marker-end="url(#arrowhead66178)" style="fill:none"></path><defs><marker id="arrowhead66178" 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-RPCEndpoint LE-raft.Apply" id="L-RPCEndpoint-raft.Apply" style="opacity: 1;"><path class="path" d="M711.984375,275L711.984375,300L711.984375,325" marker-end="url(#arrowhead66179)" style="fill:none"></path><defs><marker id="arrowhead66179" 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-raft.Apply LE-FSM.applyRegistration" id="L-raft.Apply-FSM.applyRegistration" style="opacity: 1;"><path class="path" d="M711.984375,364L711.984375,389L711.984375,414" marker-end="url(#arrowhead66180)" style="fill:none"></path><defs><marker id="arrowhead66180" 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-FSM.applyRegistration LE-state.Store.Register" id="L-FSM.applyRegistration-state.Store.Register" style="opacity: 1;"><path class="path" d="M711.984375,453L711.984375,478L711.984375,503L711.984375,528" marker-end="url(#arrowhead66181)" style="fill:none"></path><defs><marker id="arrowhead66181" 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-state.Store.Register LE-EventPublisher" id="L-state.Store.Register-EventPublisher" style="opacity: 1;"><path class="path" d="M711.984375,567L711.984375,601.5L645.7121310763889,636" marker-end="url(#arrowhead66182)" style="fill:none"></path><defs><marker id="arrowhead66182" 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="" 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-Read-HTTPEndpoint" class="edgeLabel L-LS-Read' L-LE-HTTPEndpoint"></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-Read-DNSEndpoint" class="edgeLabel L-LS-Read' L-LE-DNSEndpoint"></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-HTTPEndpoint-rpcClient.Health" class="edgeLabel L-LS-HTTPEndpoint' L-LE-rpcClient.Health"></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-DNSEndpoint-rpcClient.Health" class="edgeLabel L-LS-DNSEndpoint' L-LE-rpcClient.Health"></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-rpcClient.Health-AgentCache" class="edgeLabel L-LS-rpcClient.Health' L-LE-AgentCache"></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-AgentCache-MaterializedView" class="edgeLabel L-LS-AgentCache' L-LE-MaterializedView"></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-MaterializedView-SubscribeEndpoint" class="edgeLabel L-LS-MaterializedView' L-LE-SubscribeEndpoint"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(504.5234375,601.5)" style="opacity: 1;"><g transform="translate(-64.5390625,-9.5)" class="label"><rect rx="0" ry="0" width="129.078125" height="19"></rect><foreignObject width="129.078125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-SubscribeEndpoint-EventPublisher" class="edgeLabel L-LS-SubscribeEndpoint' L-LE-EventPublisher">Subscribe to 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-Write-RPCEndpoint" class="edgeLabel L-LS-Write' L-LE-RPCEndpoint"></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-RPCEndpoint-raft.Apply" class="edgeLabel L-LS-RPCEndpoint' L-LE-raft.Apply"></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-raft.Apply-FSM.applyRegistration" class="edgeLabel L-LS-raft.Apply' L-LE-FSM.applyRegistration"></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-FSM.applyRegistration-state.Store.Register" class="edgeLabel L-LS-FSM.applyRegistration' L-LE-state.Store.Register"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(711.984375,601.5)" style="opacity: 1;"><g transform="translate(-48.140625,-9.5)" class="label"><rect rx="0" ry="0" width="96.28125" height="19"></rect><foreignObject width="96.28125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-state.Store.Register-EventPublisher" class="edgeLabel L-LS-state.Store.Register' L-LE-EventPublisher">Publish event</span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="flowchart-RPCEndpoint-67899" transform="translate(711.984375,255.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-55.59375" y="-19.5" width="111.1875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-45.59375,-9.5)"><foreignObject width="91.1875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">RPCEndpoint</div></foreignObject></g></g></g><g class="node default" id="flowchart-raft.Apply-67900" transform="translate(711.984375,344.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-46.3203125" y="-19.5" width="92.640625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-36.3203125,-9.5)"><foreignObject width="72.640625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">raft.Apply</div></foreignObject></g></g></g><g class="node default" id="flowchart-FSM.applyRegistration-67901" transform="translate(711.984375,433.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-88.9140625" y="-19.5" width="177.828125" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-78.9140625,-9.5)"><foreignObject width="157.828125" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">FSM.applyRegistration</div></foreignObject></g></g></g><g class="node default" id="flowchart-state.Store.Register-67902" transform="translate(711.984375,547.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-81.6875" y="-19.5" width="163.375" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-71.6875,-9.5)"><foreignObject width="143.375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">state.Store.Register</div></foreignObject></g></g></g><g class="node default" id="flowchart-SubscribeEndpoint-67903" transform="translate(504.5234375,547.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-75.7734375" y="-19.5" width="151.546875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-65.7734375,-9.5)"><foreignObject width="131.546875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">SubscribeEndpoint</div></foreignObject></g></g></g><g class="node default" id="flowchart-EventPublisher-67904" transform="translate(608.25390625,655.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-63.125" y="-19.5" width="126.25" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-53.125,-9.5)"><foreignObject width="106.25" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">EventPublisher</div></foreignObject></g></g></g><g class="node default" id="flowchart-HTTPEndpoint-67894" transform="translate(109.046875,141.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-60.671875" y="-19.5" width="121.34375" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-50.671875,-9.5)"><foreignObject width="101.34375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">HTTPEndpoint</div></foreignObject></g></g></g><g class="node default" id="flowchart-DNSEndpoint-67895" transform="translate(275.265625,141.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-55.546875" y="-19.5" width="111.09375" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-45.546875,-9.5)"><foreignObject width="91.09375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">DNSEndpoint</div></foreignObject></g></g></g><g class="node default" id="flowchart-rpcClient.Health-67896" transform="translate(192.15625,255.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-69.5" y="-19.5" width="139" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-59.5,-9.5)"><foreignObject width="119" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">rpcClient.Health</div></foreignObject></g></g></g><g class="node default" id="flowchart-AgentCache-67897" transform="translate(192.15625,344.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-52.328125" y="-19.5" width="104.65625" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-42.328125,-9.5)"><foreignObject width="84.65625" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">AgentCache</div></foreignObject></g></g></g><g class="node default" id="flowchart-MaterializedView-67898" transform="translate(192.15625,433.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-71.421875" y="-19.5" width="142.84375" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-61.421875,-9.5)"><foreignObject width="122.84375" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">MaterializedView</div></foreignObject></g></g></g><g class="node start" id="flowchart-Read-67905" transform="translate(192.15625,27.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-27.359375" y="-19.5" width="54.71875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-17.359375,-9.5)"><foreignObject width="34.71875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Read</div></foreignObject></g></g></g><g class="node start" id="flowchart-Write-67919" transform="translate(711.984375,141.5)" style="opacity: 1;"><rect rx="0" ry="0" x="-29.34375" y="-19.5" width="58.6875" height="39" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-19.34375,-9.5)"><foreignObject width="38.6875" height="19"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Write</div></foreignObject></g></g></g></g></g></g></svg>