| 1 |
- <svg id="mermaid-svg" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" style="max-width: 1160.3125px;" viewBox="0 0 1160.3125 2100.488525390625" role="graphics-document document" aria-roledescription="flowchart-v2" xmlns:xlink="http://www.w3.org/1999/xlink"><style xmlns="http://www.w3.org/1999/xhtml">@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css");</style><style>#mermaid-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg .error-icon{fill:#552222;}#mermaid-svg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg .edge-thickness-normal{stroke-width:1px;}#mermaid-svg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg .marker{fill:#333333;stroke:#333333;}#mermaid-svg .marker.cross{stroke:#333333;}#mermaid-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg p{margin:0;}#mermaid-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg .cluster-label text{fill:#333;}#mermaid-svg .cluster-label span{color:#333;}#mermaid-svg .cluster-label span p{background-color:transparent;}#mermaid-svg .label text,#mermaid-svg span{fill:#333;color:#333;}#mermaid-svg .node rect,#mermaid-svg .node circle,#mermaid-svg .node ellipse,#mermaid-svg .node polygon,#mermaid-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg .rough-node .label text,#mermaid-svg .node .label text,#mermaid-svg .image-shape .label,#mermaid-svg .icon-shape .label{text-anchor:middle;}#mermaid-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg .rough-node .label,#mermaid-svg .node .label,#mermaid-svg .image-shape .label,#mermaid-svg .icon-shape .label{text-align:center;}#mermaid-svg .node.clickable{cursor:pointer;}#mermaid-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg .arrowheadPath{fill:#333333;}#mermaid-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg .cluster text{fill:#333;}#mermaid-svg .cluster span{color:#333;}#mermaid-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg rect.text{fill:none;stroke-width:0;}#mermaid-svg .icon-shape,#mermaid-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg .icon-shape p,#mermaid-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg .icon-shape rect,#mermaid-svg .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="mermaid-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="mermaid-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="mermaid-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="mermaid-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="mermaid-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="mermaid-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster " id="Core" data-look="classic"><rect style="" x="299.640625" y="1264" width="852.671875" height="739.4885940551758"/><g class="cluster-label " transform="translate(669.953125, 1264)"><foreignObject width="112.046875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>Server internals</p></span></div></foreignObject></g></g><g class="cluster " id="WS" data-look="classic"><rect style="" x="8" y="1525.6147689819336" width="241.640625" height="361.72296142578125"/><g class="cluster-label " transform="translate(73.8359375, 1525.6147689819336)"><foreignObject width="109.96875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>WebSocket /ws</p></span></div></foreignObject></g></g><g class="cluster " id="HTTP" data-look="classic"><rect style="" x="8" y="8" width="753.609375" height="1236"/><g class="cluster-label " transform="translate(298.25, 8)"><foreignObject width="173.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>HTTP routes (port 3843)</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M702.539,70L712.384,70C722.229,70,741.919,70,755.931,277.66C769.943,485.321,778.276,900.642,790.484,1110.719C802.692,1320.797,818.774,1325.631,826.816,1328.049L834.857,1330.466" id="L_Login_Auth_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Login_Auth_0" data-points="W3sieCI6NzAyLjUzOTA2MjUsInkiOjcwfSx7IngiOjc2MS42MDkzNzUsInkiOjcwfSx7IngiOjc4Ni42MDkzNzUsInkiOjEzMTUuOTYyNTI0NDE0MDYyNX0seyJ4Ijo4MzguNjg3NSwieSI6MTMzMS42MTczNTA4NDY0MDJ9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M696.75,174L707.56,174C718.37,174,739.99,174,754.966,380.351C769.943,586.702,778.276,999.404,790.552,1200.86C802.827,1402.316,819.045,1392.527,827.154,1387.632L835.263,1382.738" id="L_Me_Auth_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Me_Auth_0" data-points="W3sieCI6Njk2Ljc1LCJ5IjoxNzR9LHsieCI6NzYxLjYwOTM3NSwieSI6MTc0fSx7IngiOjc4Ni42MDkzNzUsInkiOjE0MTIuMTA1Mzk0MzYzNDAzM30seyJ4Ijo4MzguNjg3NSwieSI6MTM4MC42NzA3MDA1MTA0ODg4fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M726.828,590L732.625,590C738.422,590,750.016,590,759.979,755.12C769.943,920.24,778.276,1250.481,800.164,1415.601C822.052,1580.721,857.495,1580.721,892.938,1580.721C928.38,1580.721,963.823,1580.721,985.317,1585.878C1006.812,1591.034,1014.358,1601.346,1018.131,1606.503L1021.904,1611.659" id="L_Cmd_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Cmd_Store_0" data-points="W3sieCI6NzI2LjgyODEyNSwieSI6NTkwfSx7IngiOjc2MS42MDkzNzUsInkiOjU5MH0seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNTgwLjcyMTM4MjE0MTExMzN9LHsieCI6ODkyLjkzNzUsInkiOjE1ODAuNzIxMzgyMTQxMTEzM30seyJ4Ijo5OTkuMjY1NjI1LCJ5IjoxNTgwLjcyMTM4MjE0MTExMzN9LHsieCI6MTAyNC4yNjU2MjUsInkiOjE2MTQuODg2ODY5NzAyOTM0M31d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M725.492,694L731.512,694C737.531,694,749.57,694,759.757,845.12C769.943,996.24,778.276,1298.481,800.164,1449.601C822.052,1600.721,857.495,1600.721,892.938,1600.721C928.38,1600.721,963.823,1600.721,985.153,1603.079C1006.483,1605.437,1013.7,1610.153,1017.308,1612.51L1020.917,1614.868" id="L_CmdList_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_CmdList_Store_0" data-points="W3sieCI6NzI1LjQ5MjE4NzUsInkiOjY5NH0seyJ4Ijo3NjEuNjA5Mzc1LCJ5Ijo2OTR9LHsieCI6Nzg2LjYwOTM3NSwieSI6MTYwMC43MjEzODIxNDExMTMzfSx7IngiOjg5Mi45Mzc1LCJ5IjoxNjAwLjcyMTM4MjE0MTExMzN9LHsieCI6OTk5LjI2NTYyNSwieSI6MTYwMC43MjEzODIxNDExMTMzfSx7IngiOjEwMjQuMjY1NjI1LCJ5IjoxNjE3LjA1NjI0Njg2ODAxNDh9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M712.141,278L720.385,278C728.63,278,745.12,278,757.531,481.048C769.943,684.095,778.276,1090.19,789.948,1293.238C801.62,1496.286,816.63,1496.286,824.135,1496.286L831.641,1496.286" id="L_Metrics_Metrics2_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Metrics_Metrics2_0" data-points="W3sieCI6NzEyLjE0MDYyNSwieSI6Mjc4fSx7IngiOjc2MS42MDkzNzUsInkiOjI3OH0seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNDk2LjI4NTczOTg5ODY4MTZ9LHsieCI6ODM1LjY0MDYyNSwieSI6MTQ5Ni4yODU3Mzk4OTg2ODE2fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M705.93,798L715.21,798C724.49,798,743.049,798,756.496,935.12C769.943,1072.24,778.276,1346.481,800.164,1483.601C822.052,1620.721,857.495,1620.721,892.938,1620.721C928.38,1620.721,963.823,1620.721,985.09,1622.112C1006.358,1623.502,1013.45,1626.282,1016.996,1627.672L1020.542,1629.062" id="L_Alerts_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Alerts_Store_0" data-points="W3sieCI6NzA1LjkyOTY4NzUsInkiOjc5OH0seyJ4Ijo3NjEuNjA5Mzc1LCJ5Ijo3OTh9LHsieCI6Nzg2LjYwOTM3NSwieSI6MTYyMC43MjEzODIxNDExMTMzfSx7IngiOjg5Mi45Mzc1LCJ5IjoxNjIwLjcyMTM4MjE0MTExMzN9LHsieCI6OTk5LjI2NTYyNSwieSI6MTYyMC43MjEzODIxNDExMTMzfSx7IngiOjEwMjQuMjY1NjI1LCJ5IjoxNjMwLjUyMjMwMDk3NzI1NDJ9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M736.609,902L740.776,902C744.943,902,753.276,902,761.609,1025.12C769.943,1148.24,778.276,1394.481,800.164,1517.601C822.052,1640.721,857.495,1640.721,892.938,1640.721C928.38,1640.721,963.823,1640.721,985.05,1641.179C1006.277,1641.638,1013.288,1642.554,1016.794,1643.012L1020.299,1643.47" id="L_Ack_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Ack_Store_0" data-points="W3sieCI6NzM2LjYwOTM3NSwieSI6OTAyfSx7IngiOjc2MS42MDkzNzUsInkiOjkwMn0seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNjQwLjcyMTM4MjE0MTExMzN9LHsieCI6ODkyLjkzNzUsInkiOjE2NDAuNzIxMzgyMTQxMTEzM30seyJ4Ijo5OTkuMjY1NjI1LCJ5IjoxNjQwLjcyMTM4MjE0MTExMzN9LHsieCI6MTAyNC4yNjU2MjUsInkiOjE2NDMuOTg4MzU1MDg2NDkzNn1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M721.938,1006L728.549,1006C735.161,1006,748.385,1006,759.164,1115.12C769.943,1224.24,778.276,1442.481,800.164,1551.601C822.052,1660.721,857.495,1660.721,892.938,1660.721C928.38,1660.721,963.823,1660.721,985.05,1660.263C1006.277,1659.805,1013.288,1658.889,1016.794,1658.431L1020.299,1657.973" id="L_EvList_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_EvList_Store_0" data-points="W3sieCI6NzIxLjkzNzUsInkiOjEwMDZ9LHsieCI6NzYxLjYwOTM3NSwieSI6MTAwNn0seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNjYwLjcyMTM4MjE0MTExMzN9LHsieCI6ODkyLjkzNzUsInkiOjE2NjAuNzIxMzgyMTQxMTEzM30seyJ4Ijo5OTkuMjY1NjI1LCJ5IjoxNjYwLjcyMTM4MjE0MTExMzN9LHsieCI6MTAyNC4yNjU2MjUsInkiOjE2NTcuNDU0NDA5MTk1NzMzfV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M221.375,1174.339L226.086,1173.95C230.797,1173.56,240.219,1172.78,249.096,1172.39C257.974,1172,266.307,1172,274.641,1172C282.974,1172,291.307,1172,310.823,1172C330.339,1172,361.036,1172,391.734,1172C422.432,1172,453.13,1172,491.628,1172C530.125,1172,576.422,1172,622.719,1172C669.016,1172,715.313,1172,742.628,1256.787C769.943,1341.574,778.276,1511.148,800.164,1595.934C822.052,1680.721,857.495,1680.721,892.938,1680.721C928.38,1680.721,963.823,1680.721,985.09,1679.331C1006.358,1677.941,1013.45,1675.161,1016.996,1673.771L1020.542,1672.38" id="L_EvIn_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_EvIn_Store_0" data-points="W3sieCI6MjIxLjM3NSwieSI6MTE3NC4zMzk0NzYyMzY2NjM0fSx7IngiOjI0OS42NDA2MjUsInkiOjExNzJ9LHsieCI6Mjc0LjY0MDYyNSwieSI6MTE3Mn0seyJ4IjoyOTkuNjQwNjI1LCJ5IjoxMTcyfSx7IngiOjM5MS43MzQzNzUsInkiOjExNzJ9LHsieCI6NDgzLjgyODEyNSwieSI6MTE3Mn0seyJ4Ijo2MjIuNzE4NzUsInkiOjExNzJ9LHsieCI6NzYxLjYwOTM3NSwieSI6MTE3Mn0seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNjgwLjcyMTM4MjE0MTExMzN9LHsieCI6ODkyLjkzNzUsInkiOjE2ODAuNzIxMzgyMTQxMTEzM30seyJ4Ijo5OTkuMjY1NjI1LCJ5IjoxNjgwLjcyMTM4MjE0MTExMzN9LHsieCI6MTAyNC4yNjU2MjUsInkiOjE2NzAuOTIwNDYzMzA0OTcyNH1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M221.375,1205.748L226.086,1206.956C230.797,1208.165,240.219,1210.583,249.096,1211.791C257.974,1213,266.307,1213,274.641,1213C282.974,1213,291.307,1213,308.472,1262.815C325.637,1312.63,351.633,1412.259,364.632,1462.074L377.63,1511.889" id="L_EvIn_Publisher_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_EvIn_Publisher_0" data-points="W3sieCI6MjIxLjM3NSwieSI6MTIwNS43NDc2MjM2NjYzNDMzfSx7IngiOjI0OS42NDA2MjUsInkiOjEyMTN9LHsieCI6Mjc0LjY0MDYyNSwieSI6MTIxM30seyJ4IjoyOTkuNjQwNjI1LCJ5IjoxMjEzfSx7IngiOjM3OC42Mzk2MzkzNTI4ODQzLCJ5IjoxNTE1Ljc1OTI4MzcwOTgzMzd9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M221.375,1189.661L226.086,1190.05C230.797,1190.44,240.219,1191.22,249.096,1191.61C257.974,1192,266.307,1192,274.641,1192C282.974,1192,291.307,1192,305.726,1209.592C320.144,1227.184,340.648,1262.369,350.9,1279.961L361.152,1297.553" id="L_EvIn_SSE_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_EvIn_SSE_0" data-points="W3sieCI6MjIxLjM3NSwieSI6MTE4OS42NjA1MjM3NjMzMzY2fSx7IngiOjI0OS42NDA2MjUsInkiOjExOTJ9LHsieCI6Mjc0LjY0MDYyNSwieSI6MTE5Mn0seyJ4IjoyOTkuNjQwNjI1LCJ5IjoxMTkyfSx7IngiOjM2My4xNjU3MzA0MzMzMzQ5NCwieSI6MTMwMS4wMDkwMTIxNzc1MTYzfV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M224.641,1716.088L228.807,1716.088C232.974,1716.088,241.307,1716.088,249.641,1716.088C257.974,1716.088,266.307,1716.088,274.641,1716.088C282.974,1716.088,291.307,1716.088,299.645,1716.088C307.982,1716.088,316.323,1716.088,320.493,1716.088L324.664,1716.088" id="L_RouterWS_RouterMgr_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_RouterWS_RouterMgr_0" data-points="W3sieCI6MjI0LjY0MDYyNSwieSI6MTcxNi4wODc5MzY0MDEzNjcyfSx7IngiOjI0OS42NDA2MjUsInkiOjE3MTYuMDg3OTM2NDAxMzY3Mn0seyJ4IjoyNzQuNjQwNjI1LCJ5IjoxNzE2LjA4NzkzNjQwMTM2NzJ9LHsieCI6Mjk5LjY0MDYyNSwieSI6MTcxNi4wODc5MzY0MDEzNjcyfSx7IngiOjMyOC42NjQwNjI1LCJ5IjoxNzE2LjA4NzkzNjQwMTM2NzJ9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M150.388,1743.088L166.93,1763.796C183.472,1784.505,216.557,1825.921,237.265,1846.629C257.974,1867.338,266.307,1867.338,274.641,1867.338C282.974,1867.338,291.307,1867.338,298.974,1867.338C306.641,1867.338,313.641,1867.338,317.141,1867.338L320.641,1867.338" id="L_RouterWS_CmdQueue_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_RouterWS_CmdQueue_0" data-points="W3sieCI6MTUwLjM4ODI2NTQyODAwOTI1LCJ5IjoxNzQzLjA4NzkzNjQwMTM2NzJ9LHsieCI6MjQ5LjY0MDYyNSwieSI6MTg2Ny4zMzc3MzA0MDc3MTQ4fSx7IngiOjI3NC42NDA2MjUsInkiOjE4NjcuMzM3NzMwNDA3NzE0OH0seyJ4IjoyOTkuNjQwNjI1LCJ5IjoxODY3LjMzNzczMDQwNzcxNDh9LHsieCI6MzI0LjY0MDYyNSwieSI6MTg2Ny4zMzc3MzA0MDc3MTQ4fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M150.5,1689.088L167.023,1668.509C183.547,1647.93,216.594,1606.772,237.284,1586.194C257.974,1565.615,266.307,1565.615,274.641,1565.615C282.974,1565.615,291.307,1565.615,299.863,1565.615C308.419,1565.615,317.198,1565.615,321.587,1565.615L325.977,1565.615" id="L_RouterWS_Publisher_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_RouterWS_Publisher_0" data-points="W3sieCI6MTUwLjQ5OTU4MjU4ODExNDcsInkiOjE2ODkuMDg3OTM2NDAxMzY3Mn0seyJ4IjoyNDkuNjQwNjI1LCJ5IjoxNTY1LjYxNDc2ODk4MTkzMzZ9LHsieCI6Mjc0LjY0MDYyNSwieSI6MTU2NS42MTQ3Njg5ODE5MzM2fSx7IngiOjI5OS42NDA2MjUsInkiOjE1NjUuNjE0NzY4OTgxOTMzNn0seyJ4IjozMjkuOTc2NTYyNSwieSI6MTU2NS42MTQ3Njg5ODE5MzM2fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M974.266,1768.426L978.432,1768.426C982.599,1768.426,990.932,1768.426,1002.249,1757.054C1013.565,1745.683,1027.865,1722.939,1035.015,1711.568L1042.164,1700.196" id="L_Consumer_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Consumer_Store_0" data-points="W3sieCI6OTc0LjI2NTYyNSwieSI6MTc2OC40MjU4OTE4NzYyMjA3fSx7IngiOjk5OS4yNjU2MjUsInkiOjE3NjguNDI1ODkxODc2MjIwN30seyJ4IjoxMDQ0LjI5MzQyMDcyNDQwMTYsInkiOjE2OTYuODEwMDA2MTQ0NDY0fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M453.492,1565.615L458.548,1565.615C463.604,1565.615,473.716,1565.615,500.492,1643.785C527.267,1721.955,570.707,1878.295,592.426,1956.465L614.146,2034.635" id="L_Publisher_RP_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Publisher_RP_0" data-points="W3sieCI6NDUzLjQ5MjE4NzUsInkiOjE1NjUuNjE0NzY4OTgxOTMzNn0seyJ4Ijo0ODMuODI4MTI1LCJ5IjoxNTY1LjYxNDc2ODk4MTkzMzZ9LHsieCI6NjE1LjIxNjc2MzEyNDcxMSwieSI6MjAzOC40ODg1OTQwNTUxNzU4fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M635.343,2038.489L656.387,1993.478C677.431,1948.468,719.52,1858.447,744.732,1813.436C769.943,1768.426,778.276,1768.426,785.943,1768.426C793.609,1768.426,800.609,1768.426,804.109,1768.426L807.609,1768.426" id="L_RP_Consumer_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_RP_Consumer_0" data-points="W3sieCI6NjM1LjM0MjUwNTM0NjkxMywieSI6MjAzOC40ODg1OTQwNTUxNzU4fSx7IngiOjc2MS42MDkzNzUsInkiOjE3NjguNDI1ODkxODc2MjIwN30seyJ4Ijo3ODYuNjA5Mzc1LCJ5IjoxNzY4LjQyNTg5MTg3NjIyMDd9LHsieCI6ODExLjYwOTM3NSwieSI6MTc2OC40MjU4OTE4NzYyMjA3fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M441.484,1347.12L448.542,1347.12C455.599,1347.12,469.714,1347.12,499.177,1191.427C528.64,1035.733,573.452,724.346,595.858,568.653L618.263,412.959" id="L_SSE_EvStream_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_SSE_EvStream_0" data-points="W3sieCI6NDQxLjQ4NDM3NSwieSI6MTM0Ny4xMjAyNjU5NjA2OTM0fSx7IngiOjQ4My44MjgxMjUsInkiOjEzNDcuMTIwMjY1OTYwNjkzNH0seyJ4Ijo2MTguODMzMTc1MzEzMzM5NCwieSI6NDA5fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M945.797,1919.809L954.708,1919.809C963.62,1919.809,981.443,1919.809,1000.63,1883.608C1019.817,1847.407,1040.369,1775.005,1050.644,1738.804L1060.92,1702.603" id="L_IdemJanitor_Store_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_IdemJanitor_Store_0" data-points="W3sieCI6OTQ1Ljc5Njg3NSwieSI6MTkxOS44MDk0OTc4MzMyNTJ9LHsieCI6OTk5LjI2NTYyNSwieSI6MTkxOS44MDk0OTc4MzMyNTJ9LHsieCI6MTA2Mi4wMTIyNDA0OTMzNzI1LCJ5IjoxNjk4Ljc1NTA2ODczNjUxNTZ9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_Login_Auth_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Me_Auth_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Cmd_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_CmdList_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Metrics_Metrics2_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Alerts_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Ack_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_EvList_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_EvIn_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_EvIn_Publisher_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_EvIn_SSE_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_RouterWS_RouterMgr_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_RouterWS_CmdQueue_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_RouterWS_Publisher_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Consumer_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Publisher_RP_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_RP_Consumer_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SSE_EvStream_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_IdemJanitor_Store_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default " id="flowchart-Login-0" transform="translate(622.71875, 70)"><rect class="basic label-container" style="" x="-79.8203125" y="-27" width="159.640625" height="54"/><g class="label" style="" transform="translate(-49.8203125, -12)"><rect/><foreignObject width="99.640625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>/api/auth/login</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Me-1" transform="translate(622.71875, 174)"><rect class="basic label-container" style="" x="-74.03125" y="-27" width="148.0625" height="54"/><g class="label" style="" transform="translate(-44.03125, -12)"><rect/><foreignObject width="88.0625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>/api/auth/me</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-EvIn-2" transform="translate(128.8203125, 1182)"><rect class="basic label-container" style="" x="-92.5546875" y="-27" width="185.109375" height="54"/><g class="label" style="" transform="translate(-62.5546875, -12)"><rect/><foreignObject width="125.109375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>POST /api/events</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-EvList-3" transform="translate(622.71875, 1006)"><rect class="basic label-container" style="" x="-99.21875" y="-27" width="198.4375" height="54"/><g class="label" style="" transform="translate(-69.21875, -12)"><rect/><foreignObject width="138.4375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/events/list</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-EvStream-4" transform="translate(622.71875, 382)"><rect class="basic label-container" style="" x="-113.890625" y="-27" width="227.78125" height="54"/><g class="label" style="" transform="translate(-83.890625, -12)"><rect/><foreignObject width="167.78125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/events/stream</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Routers-5" transform="translate(622.71875, 486)"><rect class="basic label-container" style="" x="-88.546875" y="-27" width="177.09375" height="54"/><g class="label" style="" transform="translate(-58.546875, -12)"><rect/><foreignObject width="117.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/routers</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Cmd-6" transform="translate(622.71875, 590)"><rect class="basic label-container" style="" x="-104.109375" y="-27" width="208.21875" height="54"/><g class="label" style="" transform="translate(-74.109375, -12)"><rect/><foreignObject width="148.21875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>POST /api/command</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-CmdList-7" transform="translate(622.71875, 694)"><rect class="basic label-container" style="" x="-102.7734375" y="-27" width="205.546875" height="54"/><g class="label" style="" transform="translate(-72.7734375, -12)"><rect/><foreignObject width="145.546875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/commands</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Metrics-8" transform="translate(622.71875, 278)"><rect class="basic label-container" style="" x="-89.421875" y="-27" width="178.84375" height="54"/><g class="label" style="" transform="translate(-59.421875, -12)"><rect/><foreignObject width="118.84375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/metrics</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Alerts-9" transform="translate(622.71875, 798)"><rect class="basic label-container" style="" x="-83.2109375" y="-27" width="166.421875" height="54"/><g class="label" style="" transform="translate(-53.2109375, -12)"><rect/><foreignObject width="106.421875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /api/alerts</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Ack-10" transform="translate(622.71875, 902)"><rect class="basic label-container" style="" x="-113.890625" y="-27" width="227.78125" height="54"/><g class="label" style="" transform="translate(-83.890625, -12)"><rect/><foreignObject width="167.78125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>POST /api/alerts/:id/ack</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Health-11" transform="translate(622.71875, 1110)"><rect class="basic label-container" style="" x="-72.546875" y="-27" width="145.09375" height="54"/><g class="label" style="" transform="translate(-42.546875, -12)"><rect/><foreignObject width="85.09375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>GET /health</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-RouterWS-12" transform="translate(128.8203125, 1716.0879364013672)"><rect class="basic label-container" style="" x="-95.8203125" y="-27" width="191.640625" height="54"/><g class="label" style="" transform="translate(-65.8203125, -12)"><rect/><foreignObject width="131.640625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>router connections</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Store-13" transform="translate(1075.7890625, 1650.7213821411133)"><path d="M0,11.296676944158959 a51.5234375,11.296676944158959 0,0,0 103.046875,0 a51.5234375,11.296676944158959 0,0,0 -103.046875,0 l0,74.29667694415896 a51.5234375,11.296676944158959 0,0,0 103.046875,0 l0,-74.29667694415896" class="basic label-container" style="" label-offset-y="11.296676944158959" transform="translate(-51.5234375, -48.44501541623844)"/><g class="label" style="" transform="translate(-44.0234375, -14)"><rect/><foreignObject width="88.046875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>store.go<br />SQLite layer</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Auth-14" transform="translate(892.9375, 1347.925048828125)"><path d="M0,11.616702355460385 a54.25,11.616702355460385 0,0,0 108.5,0 a54.25,11.616702355460385 0,0,0 -108.5,0 l0,74.61670235546038 a54.25,11.616702355460385 0,0,0 108.5,0 l0,-74.61670235546038" class="basic label-container" style="" label-offset-y="11.616702355460385" transform="translate(-54.25, -48.92505353319057)"/><g class="label" style="" transform="translate(-46.75, -14)"><rect/><foreignObject width="93.5" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>auth.go<br />JWT + scrypt</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-SSE-15" transform="translate(391.734375, 1347.1202659606934)"><path d="M0,11.080178173719377 a49.75,11.080178173719377 0,0,0 99.5,0 a49.75,11.080178173719377 0,0,0 -99.5,0 l0,74.08017817371937 a49.75,11.080178173719377 0,0,0 99.5,0 l0,-74.08017817371937" class="basic label-container" style="" label-offset-y="11.080178173719377" transform="translate(-49.75, -48.12026726057906)"/><g class="label" style="" transform="translate(-42.25, -14)"><rect/><foreignObject width="84.5" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>sse.go<br />broadcaster</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Metrics2-16" transform="translate(892.9375, 1496.2857398986816)"><path d="M0,11.95708882222512 a57.296875,11.95708882222512 0,0,0 114.59375,0 a57.296875,11.95708882222512 0,0,0 -114.59375,0 l0,74.95708882222512 a57.296875,11.95708882222512 0,0,0 114.59375,0 l0,-74.95708882222512" class="basic label-container" style="" label-offset-y="11.95708882222512" transform="translate(-57.296875, -49.43563323333768)"/><g class="label" style="" transform="translate(-49.796875, -14)"><rect/><foreignObject width="99.59375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>metrics.go<br />1-min buckets</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Consumer-17" transform="translate(892.9375, 1768.4258918762207)"><path d="M0,14.136338946224878 a81.328125,14.136338946224878 0,0,0 162.65625,0 a81.328125,14.136338946224878 0,0,0 -162.65625,0 l0,77.13633894622488 a81.328125,14.136338946224878 0,0,0 162.65625,0 l0,-77.13633894622488" class="basic label-container" style="" label-offset-y="14.136338946224878" transform="translate(-81.328125, -52.704508419337316)"/><g class="label" style="" transform="translate(-73.828125, -14)"><rect/><foreignObject width="147.65625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>consumer.go<br />Redpanda → SQLite</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Publisher-18" transform="translate(391.734375, 1565.6147689819336)"><path d="M0,12.425337944042752 a61.7578125,12.425337944042752 0,0,0 123.515625,0 a61.7578125,12.425337944042752 0,0,0 -123.515625,0 l0,75.42533794404275 a61.7578125,12.425337944042752 0,0,0 123.515625,0 l0,-75.42533794404275" class="basic label-container" style="" label-offset-y="12.425337944042752" transform="translate(-61.7578125, -50.13800691606413)"/><g class="label" style="" transform="translate(-54.2578125, -14)"><rect/><foreignObject width="108.515625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>Kafka producer<br />(franz-go)</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-RouterMgr-19" transform="translate(391.734375, 1716.0879364013672)"><path d="M0,12.556772226715609 a63.0703125,12.556772226715609 0,0,0 126.140625,0 a63.0703125,12.556772226715609 0,0,0 -126.140625,0 l0,75.55677222671561 a63.0703125,12.556772226715609 0,0,0 126.140625,0 l0,-75.55677222671561" class="basic label-container" style="" label-offset-y="12.556772226715609" transform="translate(-63.0703125, -50.33515834007341)"/><g class="label" style="" transform="translate(-55.5703125, -14)"><rect/><foreignObject width="111.140625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>router state<br />in-memory map</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-CmdQueue-20" transform="translate(391.734375, 1867.3377304077148)"><path d="M0,12.943091391367254 a67.09375,12.943091391367254 0,0,0 134.1875,0 a67.09375,12.943091391367254 0,0,0 -134.1875,0 l0,75.94309139136726 a67.09375,12.943091391367254 0,0,0 134.1875,0 l0,-75.94309139136726" class="basic label-container" style="" label-offset-y="12.943091391367254" transform="translate(-67.09375, -50.914637087050885)"/><g class="label" style="" transform="translate(-59.59375, -14)"><rect/><foreignObject width="119.1875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>command queue<br />per router</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-IdemJanitor-21" transform="translate(892.9375, 1919.809497833252)"><path d="M0,11.455370445618312 a52.859375,11.455370445618312 0,0,0 105.71875,0 a52.859375,11.455370445618312 0,0,0 -105.71875,0 l0,74.45537044561831 a52.859375,11.455370445618312 0,0,0 105.71875,0 l0,-74.45537044561831" class="basic label-container" style="" label-offset-y="11.455370445618312" transform="translate(-52.859375, -48.68305566842747)"/><g class="label" style="" transform="translate(-45.359375, -14)"><rect/><foreignObject width="90.71875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>idempotency<br />TTL janitor</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-RP-53" transform="translate(622.71875, 2065.488594055176)"><rect class="basic label-container" style="" x="-89.1640625" y="-27" width="178.328125" height="54"/><g class="label" style="" transform="translate(-59.1640625, -12)"><rect/><foreignObject width="118.328125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>Redpanda :9092</p></span></div></foreignObject></g></g></g></g></g></svg>
|