| 1 |
- <svg id="mermaid-svg" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" style="max-width: 490.0625px;" viewBox="0 0 490.0625 792.135498046875" 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="edgePaths"><path d="M207.427,102.22L197.546,113.246C187.665,124.272,167.903,146.323,158.022,165.174C148.141,184.025,148.141,199.675,148.141,207.5L148.141,215.325" id="L_Auth_A401_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_Auth_A401_0" data-points="W3sieCI6MjA3LjQyNzEwNjEzNzc5ODc3LCJ5IjoxMDIuMjIwMDc0ODg3Nzk4Nzd9LHsieCI6MTQ4LjE0MDYyNSwieSI6MTY4LjM3NX0seyJ4IjoxNDguMTQwNjI1LCJ5IjoyMTkuMzI1MzUxNzE1MDg3OX1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M265.737,102.22L275.618,113.246C285.499,124.272,305.261,146.323,315.142,162.849C325.023,179.375,325.023,190.375,325.023,195.875L325.023,201.375" id="L_Auth_DBWrite_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_Auth_DBWrite_0" data-points="W3sieCI6MjY1LjczNjk1NjM2MjIwMTIsInkiOjEwMi4yMjAwNzQ4ODc3OTg3N30seyJ4IjozMjUuMDIzNDM3NSwieSI6MTY4LjM3NX0seyJ4IjozMjUuMDIzNDM3NSwieSI6MjA1LjM3NX1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M275.695,284.516L268.267,291.143C260.838,297.769,245.982,311.022,238.553,323.149C231.125,335.276,231.125,346.276,231.125,351.776L231.125,357.276" id="L_DBWrite_Publish_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_DBWrite_Publish_0" data-points="W3sieCI6Mjc1LjY5NDkzNjAwNDg4ODMsInkiOjI4NC41MTU4ODMwNTYyMDE3fSx7IngiOjIzMS4xMjUsInkiOjMyNC4yNzU3MDM0MzAxNzU4fSx7IngiOjIzMS4xMjUsInkiOjM2MS4yNzU3MDM0MzAxNzU4fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M374.352,284.516L381.78,291.143C389.209,297.769,404.065,311.022,411.494,329.301C418.922,347.58,418.922,370.884,418.922,382.536L418.922,394.188" id="L_DBWrite_A500_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_DBWrite_A500_0" data-points="W3sieCI6Mzc0LjM1MTkzODk5NTExMTcsInkiOjI4NC41MTU4ODMwNTYyMDE3fSx7IngiOjQxOC45MjE4NzUsInkiOjMyNC4yNzU3MDM0MzAxNzU4fSx7IngiOjQxOC45MjE4NzUsInkiOjM5OC4xODc1MjY3MDI4ODA4Nn1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M157.895,478.138L150.829,486.132C143.763,494.125,129.632,510.112,122.566,523.606C115.5,537.099,115.5,548.099,115.5,553.599L115.5,559.099" id="L_Publish_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_Publish_SSE_0" data-points="W3sieCI6MTU3Ljg5NDY4NTM5MjIwMzc3LCJ5Ijo0NzguMTM4MzczNjgwMzg2OX0seyJ4IjoxMTUuNSwieSI6NTI2LjA5OTM0OTk3NTU4NTl9LHsieCI6MTE1LjUsInkiOjU2My4wOTkzNDk5NzU1ODU5fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M304.355,478.138L311.421,486.132C318.487,494.125,332.618,510.112,339.684,524.175C346.75,538.238,346.75,550.376,346.75,556.445L346.75,562.514" id="L_Publish_LogErr_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_Publish_LogErr_0" data-points="W3sieCI6MzA0LjM1NTMxNDYwNzc5NjIzLCJ5Ijo0NzguMTM4MzczNjgwMzg2OX0seyJ4IjozNDYuNzUsInkiOjUyNi4wOTkzNDk5NzU1ODU5fSx7IngiOjM0Ni43NSwieSI6NTY2LjUxNDQxOTU1NTY2NDF9XQ==" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M115.5,673.526L115.5,677.692C115.5,681.859,115.5,690.192,129.953,701.272C144.407,712.352,173.313,726.179,187.766,733.092L202.22,740.005" id="L_SSE_End_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_End_0" data-points="W3sieCI6MTE1LjUsInkiOjY3My41MjU4MjU1MDA0ODgzfSx7IngiOjExNS41LCJ5Ijo2OTguNTI1ODI1NTAwNDg4M30seyJ4IjoyMDUuODI4MTI1LCJ5Ijo3NDEuNzMwODc1MzMyODA2Nn1d" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/><path d="M346.75,670.111L346.75,674.847C346.75,679.582,346.75,689.054,332.297,700.703C317.843,712.352,288.937,726.179,274.484,733.092L260.03,740.005" id="L_LogErr_End_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_LogErr_End_0" data-points="W3sieCI6MzQ2Ljc1LCJ5Ijo2NzAuMTEwNzU1OTIwNDEwMn0seyJ4IjozNDYuNzUsInkiOjY5OC41MjU4MjU1MDA0ODgzfSx7IngiOjI1Ni40MjE4NzUsInkiOjc0MS43MzA4NzUzMzI4MDY2fV0=" marker-end="url(#mermaid-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(148.140625, 168.375)"><g class="label" data-id="L_Auth_A401_0" transform="translate(-10.2265625, -12)"><foreignObject width="20.453125" height="24"><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 "><p>No</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(325.0234375, 168.375)"><g class="label" data-id="L_Auth_DBWrite_0" transform="translate(-13.0546875, -12)"><foreignObject width="26.109375" height="24"><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 "><p>Yes</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(231.125, 324.2757034301758)"><g class="label" data-id="L_DBWrite_Publish_0" transform="translate(-8.453125, -12)"><foreignObject width="16.90625" height="24"><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 "><p>ok</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(418.921875, 324.2757034301758)"><g class="label" data-id="L_DBWrite_A500_0" transform="translate(-16.890625, -12)"><foreignObject width="33.78125" height="24"><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 "><p>error</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(115.5, 526.0993499755859)"><g class="label" data-id="L_Publish_SSE_0" transform="translate(-37.3671875, -12)"><foreignObject width="74.734375" height="24"><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 "><p>queued ok</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(346.75, 526.0993499755859)"><g class="label" data-id="L_Publish_LogErr_0" transform="translate(-44.0234375, -12)"><foreignObject width="88.046875" height="24"><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 "><p>broker down</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_SSE_End_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_LogErr_End_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-Start-0" transform="translate(70.70703125, 69.6875)"><path d="M0,11.609534011783609 a54.1875,11.609534011783609 0,0,0 108.375,0 a54.1875,11.609534011783609 0,0,0 -108.375,0 l0,50.60953401178361 a54.1875,11.609534011783609 0,0,0 108.375,0 l0,-50.60953401178361" class="basic label-container" style="" label-offset-y="11.609534011783609" transform="translate(-54.1875, -36.91430101767541)"/><g class="label" style="" transform="translate(-46.6875, -2)"><rect/><foreignObject width="93.375" 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>Event arrives</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Auth-1" transform="translate(236.58203125, 69.6875)"><polygon points="61.6875,0 123.375,-61.6875 61.6875,-123.375 0,-61.6875" class="label-container" transform="translate(-61.1875, 61.6875)"/><g class="label" style="" transform="translate(-34.6875, -12)"><rect/><foreignObject width="69.375" 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>Auth OK?</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-A401-3" transform="translate(148.140625, 246.3253517150879)"><rect class="basic label-container" style="" x="-43.3515625" y="-27" width="86.703125" height="54"/><g class="label" style="" transform="translate(-13.3515625, -12)"><rect/><foreignObject width="26.703125" 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>401</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-DBWrite-5" transform="translate(325.0234375, 246.3253517150879)"><path d="M0,14.300235394821312 a83.53125,14.300235394821312 0,0,0 167.0625,0 a83.53125,14.300235394821312 0,0,0 -167.0625,0 l0,53.300235394821314 a83.53125,14.300235394821312 0,0,0 167.0625,0 l0,-53.300235394821314" class="basic label-container" style="" label-offset-y="14.300235394821312" transform="translate(-83.53125, -40.95035309223197)"/><g class="label" style="" transform="translate(-76.03125, -2)"><rect/><foreignObject width="152.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>INSERT INTO events</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-Publish-7" transform="translate(231.125, 425.18752670288086)"><path d="M0,13.60788334472545 a74.65625,13.60788334472545 0,0,0 149.3125,0 a74.65625,13.60788334472545 0,0,0 -149.3125,0 l0,100.60788334472545 a74.65625,13.60788334472545 0,0,0 149.3125,0 l0,-100.60788334472545" class="basic label-container" style="" label-offset-y="13.60788334472545" transform="translate(-74.65625, -63.91182501708818)"/><g class="label" style="" transform="translate(-67.15625, -26)"><rect/><foreignObject width="134.3125" height="72"><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 publish<br />fire-and-forget<br />100ms local queue</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-A500-9" transform="translate(418.921875, 425.18752670288086)"><rect class="basic label-container" style="" x="-63.140625" y="-27" width="126.28125" height="54"/><g class="label" style="" transform="translate(-33.140625, -12)"><rect/><foreignObject width="66.28125" 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>500 + log</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-SSE-11" transform="translate(115.5, 618.3125877380371)"><path d="M0,15.808823529411764 a107.5,15.808823529411764 0,0,0 215,0 a107.5,15.808823529411764 0,0,0 -215,0 l0,78.80882352941177 a107.5,15.808823529411764 0,0,0 215,0 l0,-78.80882352941177" class="basic label-container" style="" label-offset-y="15.808823529411764" transform="translate(-107.5, -55.21323529411765)"/><g class="label" style="" transform="translate(-100, -14)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel "><p>Broadcast to SSE subscribers</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-LogErr-13" transform="translate(346.75, 618.3125877380371)"><path d="M0,13.53211009174312 a73.75,13.53211009174312 0,0,0 147.5,0 a73.75,13.53211009174312 0,0,0 -147.5,0 l0,76.53211009174312 a73.75,13.53211009174312 0,0,0 147.5,0 l0,-76.53211009174312" class="basic label-container" style="" label-offset-y="13.53211009174312" transform="translate(-73.75, -51.79816513761468)"/><g class="label" style="" transform="translate(-66.25, -14)"><rect/><foreignObject width="132.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>log error, continue<br />(local ack to client)</p></span></div></foreignObject></g></g><g class="node default " id="flowchart-End-15" transform="translate(231.125, 753.830680847168)"><path d="M0,7.20323901050009 a25.296875,7.20323901050009 0,0,0 50.59375,0 a25.296875,7.20323901050009 0,0,0 -50.59375,0 l0,46.20323901050009 a25.296875,7.20323901050009 0,0,0 50.59375,0 l0,-46.20323901050009" class="basic label-container" style="" label-offset-y="7.20323901050009" transform="translate(-25.296875, -30.304858515750134)"/><g class="label" style="" transform="translate(-17.796875, -2)"><rect/><foreignObject width="35.59375" 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>done</p></span></div></foreignObject></g></g></g></g></g></svg>
|