Created
January 25, 2026 13:22
-
-
Save avirajkhare00/bb603585035c1aead5af7184c63cc6ff to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <svg id="mermaid-diagram-1769347168350" width="100%" xmlns="http://www.w3.org/2000/svg" style="max-width: 5114.029296875px;" viewBox="-8 -8 5114.029296875 7019.03125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#mermaid-diagram-1769347168350{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-diagram-1769347168350 .error-icon{fill:#552222;}#mermaid-diagram-1769347168350 .error-text{fill:#552222;stroke:#552222;}#mermaid-diagram-1769347168350 .edge-thickness-normal{stroke-width:2px;}#mermaid-diagram-1769347168350 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-diagram-1769347168350 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-diagram-1769347168350 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-diagram-1769347168350 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-diagram-1769347168350 .marker{fill:#333333;stroke:#333333;}#mermaid-diagram-1769347168350 .marker.cross{stroke:#333333;}#mermaid-diagram-1769347168350 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-diagram-1769347168350 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-diagram-1769347168350 .cluster-label text{fill:#333;}#mermaid-diagram-1769347168350 .cluster-label span,#mermaid-diagram-1769347168350 p{color:#333;}#mermaid-diagram-1769347168350 .label text,#mermaid-diagram-1769347168350 span,#mermaid-diagram-1769347168350 p{fill:#333;color:#333;}#mermaid-diagram-1769347168350 .node rect,#mermaid-diagram-1769347168350 .node circle,#mermaid-diagram-1769347168350 .node ellipse,#mermaid-diagram-1769347168350 .node polygon,#mermaid-diagram-1769347168350 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-diagram-1769347168350 .flowchart-label text{text-anchor:middle;}#mermaid-diagram-1769347168350 .node .label{text-align:center;}#mermaid-diagram-1769347168350 .node.clickable{cursor:pointer;}#mermaid-diagram-1769347168350 .arrowheadPath{fill:#333333;}#mermaid-diagram-1769347168350 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-diagram-1769347168350 .flowchart-link{stroke:#333333;fill:none;}#mermaid-diagram-1769347168350 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-diagram-1769347168350 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-diagram-1769347168350 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-diagram-1769347168350 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-diagram-1769347168350 .cluster text{fill:#333;}#mermaid-diagram-1769347168350 .cluster span,#mermaid-diagram-1769347168350 p{color:#333;}#mermaid-diagram-1769347168350 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-diagram-1769347168350 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-diagram-1769347168350 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-diagram-1769347168350 .question>*{fill:#FFE4B5!important;stroke:#FF8C00!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .question span{fill:#FFE4B5!important;stroke:#FF8C00!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .pattern>*{fill:#E6E6FA!important;stroke:#6A5ACD!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .pattern span{fill:#E6E6FA!important;stroke:#6A5ACD!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .claude>*{fill:#90EE90!important;stroke:#228B22!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .claude span{fill:#90EE90!important;stroke:#228B22!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .sync>*{fill:#B0E0E6!important;stroke:#4682B4!important;stroke-width:3px!important;}#mermaid-diagram-1769347168350 .sync span{fill:#B0E0E6!important;stroke:#4682B4!important;stroke-width:3px!important;}#mermaid-diagram-1769347168350 .done>*{fill:#98FB98!important;stroke:#228B22!important;stroke-width:3px!important;}#mermaid-diagram-1769347168350 .done span{fill:#98FB98!important;stroke:#228B22!important;stroke-width:3px!important;}#mermaid-diagram-1769347168350 .warning>*{fill:#FFB6C1!important;stroke:#DC143C!important;stroke-width:2px!important;}#mermaid-diagram-1769347168350 .warning span{fill:#FFB6C1!important;stroke:#DC143C!important;stroke-width:2px!important;}</style><g><marker id="mermaid-diagram-1769347168350_flowchart-pointEnd" class="marker flowchart" viewBox="0 0 10 10" refX="6" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="mermaid-diagram-1769347168350_flowchart-pointStart" class="marker flowchart" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="mermaid-diagram-1769347168350_flowchart-circleEnd" class="marker flowchart" 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;"></circle></marker><marker id="mermaid-diagram-1769347168350_flowchart-circleStart" class="marker flowchart" 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;"></circle></marker><marker id="mermaid-diagram-1769347168350_flowchart-crossEnd" class="marker cross flowchart" 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;"></path></marker><marker id="mermaid-diagram-1769347168350_flowchart-crossStart" class="marker cross flowchart" 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;"></path></marker><g class="root"><g class="clusters"><g class="cluster default flowchart-label" id="T4"><rect style="" rx="0" ry="0" x="4150.796875" y="604.3203125" width="947.232421875" height="1298.484375"></rect><g class="cluster-label" transform="translate(4493.5029296875, 604.3203125)"><foreignObject width="261.8203125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π¨ ASYNC: How to handle long tasks?</span></div></foreignObject></g></g><g class="cluster default flowchart-label" id="T3"><rect style="" rx="0" ry="0" x="3090.310546875" y="90.59375" width="1040.486328125" height="1812.2109375"></rect><g class="cluster-label" transform="translate(3467.7958984375, 90.59375)"><foreignObject width="285.515625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">βοΈ RUNTIME: Where does code execute?</span></div></foreignObject></g></g><g class="cluster default flowchart-label" id="T2"><rect style="" rx="0" ry="0" x="1548.68359375" y="604.3203125" width="1521.626953125" height="1298.484375"></rect><g class="cluster-label" transform="translate(2174.3291015625, 604.3203125)"><foreignObject width="270.3359375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π₯οΈ INTERFACE: How do users interact?</span></div></foreignObject></g></g><g class="cluster default flowchart-label" id="T1"><rect style="" rx="0" ry="0" x="0" y="371.9140625" width="1528.68359375" height="1530.890625"></rect><g class="cluster-label" transform="translate(649.498046875, 371.9140625)"><foreignObject width="229.6875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">ποΈ STATE: Where does data live?</span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M2848.518,23.048L2437.494,30.139C2026.471,37.23,1204.424,51.412,793.4,62.669C382.377,73.927,382.377,82.26,382.377,105.654C382.377,129.048,382.377,167.503,382.377,208.09C382.377,248.677,382.377,291.397,382.377,319.057C382.377,346.716,382.377,359.315,382.444,369.304C382.511,379.294,382.646,386.673,382.713,390.363L382.78,394.052" id="L-START-T1_START-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-START LE-T1_START" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2848.518,28.517L2728.63,34.696C2608.742,40.876,2368.965,53.235,2249.077,63.581C2129.189,73.927,2129.189,82.26,2129.189,105.654C2129.189,129.048,2129.189,167.503,2129.189,208.09C2129.189,248.677,2129.189,291.397,2129.189,319.057C2129.189,346.716,2129.189,359.315,2129.189,380.766C2129.189,402.216,2129.189,432.518,2129.189,464.953C2129.189,497.388,2129.189,531.956,2129.189,555.539C2129.189,579.122,2129.189,591.721,2129.257,601.787C2129.324,611.852,2129.459,619.384,2129.527,623.15L2129.594,626.916" id="L-START-T2_START-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-START LE-T2_START" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3167.455,32.259L3241.518,37.815C3315.581,43.371,3463.708,54.482,3537.771,64.205C3611.834,73.927,3611.834,82.26,3611.9,89.794C3611.966,97.327,3612.098,104.061,3612.164,107.428L3612.23,110.795" id="L-START-T3_START-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-START LE-T3_START" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3167.455,24.705L3414.016,31.519C3660.577,38.334,4153.699,51.964,4400.259,62.946C4646.82,73.927,4646.82,82.26,4646.82,105.654C4646.82,129.048,4646.82,167.503,4646.82,208.09C4646.82,248.677,4646.82,291.397,4646.82,319.057C4646.82,346.716,4646.82,359.315,4646.82,380.766C4646.82,402.216,4646.82,432.518,4646.82,464.953C4646.82,497.388,4646.82,531.956,4646.82,555.539C4646.82,579.122,4646.82,591.721,4646.886,601.388C4646.952,611.054,4647.084,617.788,4647.15,621.154L4647.216,624.521" id="L-START-T4_START-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-START LE-T4_START" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M335.962,480.374L296.152,494.733C256.341,509.091,176.719,537.807,136.908,558.465C97.098,579.122,97.098,591.721,97.098,616.221C97.098,640.721,97.098,677.122,97.098,715.656C97.098,754.19,97.098,794.857,97.098,837.126C97.098,879.396,97.098,923.268,97.098,967.141C97.098,1011.013,97.098,1054.885,97.098,1096.842C97.098,1138.798,97.098,1178.839,97.098,1218.879C97.098,1258.919,97.098,1298.96,97.098,1343.4C97.098,1387.84,97.098,1436.68,97.098,1485.52C97.098,1534.359,97.098,1583.199,97.098,1619.434C97.098,1655.668,97.098,1679.297,97.098,1691.112L97.098,1702.927" id="L-T1_START-T1_NONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_START LE-T1_NONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M421.042,489.124L440.161,502.024C459.28,514.924,497.519,540.724,516.638,559.923C535.758,579.122,535.758,591.721,535.831,604.451C535.904,617.181,536.051,630.042,536.124,636.473L536.197,642.903" id="L-T1_START-T1_DUR-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_START LE-T1_DUR" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M492.189,735.775L458.254,752.4C424.32,769.024,356.451,802.274,322.517,840.835C288.582,879.396,288.582,923.268,288.582,967.141C288.582,1011.013,288.582,1054.885,288.582,1096.842C288.582,1138.798,288.582,1178.839,288.582,1218.879C288.582,1258.919,288.582,1298.96,288.582,1343.4C288.582,1387.84,288.582,1436.68,288.582,1485.52C288.582,1534.359,288.582,1583.199,288.582,1619.434C288.582,1655.668,288.582,1679.297,288.582,1691.112L288.582,1702.927" id="L-T1_DUR-T1_MEM-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_DUR LE-T1_MEM" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M587.498,728.603L650.337,746.423C713.175,764.243,838.852,799.883,901.763,823.203C964.673,846.523,964.817,857.522,964.888,863.021L964.96,868.521" id="L-T1_DUR-T1_QUERY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_DUR LE-T1_QUERY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M892.622,989.053L830.428,1007.337C768.235,1025.621,643.848,1062.19,581.654,1100.494C519.461,1138.798,519.461,1178.839,519.461,1218.879C519.461,1258.919,519.461,1298.96,519.461,1343.4C519.461,1387.84,519.461,1436.68,519.461,1485.52C519.461,1534.359,519.461,1583.199,519.461,1619.434C519.461,1655.668,519.461,1679.297,519.461,1691.112L519.461,1702.927" id="L-T1_QUERY-T1_FILE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_QUERY LE-T1_FILE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M901.929,998.36L867.304,1015.093C832.678,1031.826,763.428,1065.292,728.803,1097.779C694.178,1130.266,694.178,1161.774,694.178,1177.528L694.178,1193.282" id="L-T1_QUERY-T1_SQL-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_QUERY LE-T1_SQL" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1037.584,988.907L1100.249,1007.215C1162.914,1025.524,1288.244,1062.141,1350.909,1096.203C1413.574,1130.266,1413.574,1161.774,1413.574,1177.528L1413.574,1193.282" id="L-T1_QUERY-T1_DOC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_QUERY LE-T1_DOC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M694.178,1239.176L694.178,1255.813C694.178,1272.451,694.178,1305.725,746.264,1342.41C798.35,1379.095,902.521,1419.19,954.607,1439.237L1006.693,1459.285" id="L-T1_SQL-T1_SCALE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SQL LE-T1_SCALE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1413.574,1239.176L1413.574,1255.813C1413.574,1272.451,1413.574,1305.725,1368.579,1341.999C1323.583,1378.273,1233.592,1417.546,1188.596,1437.182L1143.601,1456.819" id="L-T1_DOC-T1_SCALE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_DOC LE-T1_SCALE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1014.114,1513.325L968.767,1533.11C923.421,1552.896,832.728,1592.468,787.382,1624.068C742.035,1655.668,742.035,1679.297,742.035,1691.112L742.035,1702.927" id="L-T1_SCALE-T1_SINGLE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SCALE LE-T1_SINGLE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1036.356,1535.566L1023.237,1551.645C1010.119,1567.724,983.882,1599.882,970.763,1623.509C957.645,1647.137,957.645,1662.235,957.645,1669.784L957.645,1677.333" id="L-T1_SCALE-T1_REPLICA-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SCALE LE-T1_REPLICA" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1116.049,1535.795L1128.836,1551.836C1141.624,1567.876,1167.199,1599.958,1179.986,1625.68C1192.773,1651.403,1192.773,1670.766,1192.773,1680.448L1192.773,1690.13" id="L-T1_SCALE-T1_VERTICAL-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SCALE LE-T1_VERTICAL" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1138.519,1513.325L1183.699,1533.11C1228.879,1552.896,1319.238,1592.468,1364.418,1624.068C1409.598,1655.668,1409.598,1679.297,1409.598,1691.112L1409.598,1702.927" id="L-T1_SCALE-T1_SHARD-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SCALE LE-T1_SHARD" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M97.098,1748.82L97.098,1759.385C97.098,1769.951,97.098,1791.081,194.888,1808.514C292.679,1825.948,488.261,1839.684,586.051,1846.552L683.842,1853.421" id="L-T1_NONE-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_NONE LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M288.582,1748.82L288.582,1759.385C288.582,1769.951,288.582,1791.081,354.461,1808.227C420.34,1825.373,552.097,1838.534,617.976,1845.115L683.855,1851.696" id="L-T1_MEM-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_MEM LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M519.461,1748.82L519.461,1759.385C519.461,1769.951,519.461,1791.081,546.873,1807.225C574.286,1823.369,629.111,1834.526,656.523,1840.105L683.935,1845.684" id="L-T1_FILE-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_FILE LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M742.035,1748.82L742.035,1759.385C742.035,1769.951,742.035,1791.081,742.035,1804.929C742.035,1818.778,742.035,1825.344,742.035,1828.628L742.035,1831.911" id="L-T1_SINGLE-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SINGLE LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M957.645,1774.414L957.645,1780.714C957.645,1787.013,957.645,1799.612,931.392,1811.427C905.139,1823.242,852.634,1834.272,826.381,1839.788L800.128,1845.303" id="L-T1_REPLICA-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_REPLICA LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1192.773,1761.617L1192.773,1770.049C1192.773,1778.482,1192.773,1795.346,1127.347,1810.354C1061.921,1825.361,931.068,1838.511,865.641,1845.086L800.215,1851.661" id="L-T1_VERTICAL-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_VERTICAL LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1409.598,1748.82L1409.598,1759.385C1409.598,1769.951,1409.598,1791.081,1308.036,1808.537C1206.475,1825.994,1003.352,1839.776,901.791,1846.668L800.229,1853.559" id="L-T1_SHARD-T1_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_SHARD LE-T1_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2064.703,730.846L1996.901,748.292C1929.098,765.738,1793.493,800.631,1725.691,840.013C1657.889,879.396,1657.889,923.268,1657.889,967.141C1657.889,1011.013,1657.889,1054.885,1657.889,1096.842C1657.889,1138.798,1657.889,1178.839,1657.889,1218.879C1657.889,1258.919,1657.889,1298.96,1657.889,1343.4C1657.889,1387.84,1657.889,1436.68,1657.889,1485.52C1657.889,1534.359,1657.889,1583.199,1657.889,1619.434C1657.889,1655.668,1657.889,1679.297,1657.889,1691.112L1657.889,1702.927" id="L-T2_START-T2_NONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_START LE-T2_NONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2128.874,795.016L2128.722,801.768C2128.57,808.519,2128.265,822.021,2128.113,850.708C2127.961,879.396,2127.961,923.268,2127.961,967.141C2127.961,1011.013,2127.961,1054.885,2127.961,1096.842C2127.961,1138.798,2127.961,1178.839,2127.961,1218.879C2127.961,1258.919,2127.961,1298.96,2128.039,1332.328C2128.117,1365.697,2128.274,1392.394,2128.352,1405.742L2128.43,1419.091" id="L-T2_START-T2_API-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_START LE-T2_API" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2197.425,728.097L2283.915,746.001C2370.406,763.906,2543.388,799.715,2629.955,827.689C2716.522,855.663,2716.676,875.803,2716.752,885.873L2716.829,895.942" id="L-T2_START-T2_UI-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_START LE-T2_UI" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2089.313,1508.5L2053.229,1529.09C2017.145,1549.68,1944.978,1590.859,1908.894,1623.264C1872.811,1655.668,1872.811,1679.297,1872.811,1691.112L1872.811,1702.927" id="L-T2_API-T2_REST-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_API LE-T2_REST" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2127.375,1546.563L2127.035,1560.809C2126.695,1575.055,2126.014,1603.547,2125.674,1629.608C2125.334,1655.668,2125.334,1679.297,2125.334,1691.112L2125.334,1702.927" id="L-T2_API-T2_GQL-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_API LE-T2_GQL" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2167.609,1508.5L2203.526,1529.09C2239.443,1549.68,2311.277,1590.859,2347.194,1623.264C2383.111,1655.668,2383.111,1679.297,2383.111,1691.112L2383.111,1702.927" id="L-T2_API-T2_GRPC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_API LE-T2_GRPC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2759.613,991.295L2792.045,1009.206C2824.476,1027.116,2889.34,1062.937,2921.771,1096.601C2954.203,1130.266,2954.203,1161.774,2954.203,1177.528L2954.203,1193.282" id="L-T2_UI-T2_STATIC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_UI LE-T2_STATIC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2671.669,988.838L2632.344,1007.158C2593.019,1025.478,2514.369,1062.118,2475.044,1094.059C2435.719,1126,2435.719,1153.243,2435.719,1166.864L2435.719,1180.485" id="L-T2_UI-T2_SPA-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_UI LE-T2_SPA" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2716.925,1033.983L2716.851,1044.779C2716.777,1055.575,2716.629,1077.166,2716.555,1101.583C2716.48,1126,2716.48,1153.243,2716.48,1166.864L2716.48,1180.485" id="L-T2_UI-T2_SSR-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_UI LE-T2_SSR" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2435.719,1251.973L2435.719,1266.477C2435.719,1280.982,2435.719,1309.991,2471.438,1343.175C2507.157,1376.359,2578.595,1413.718,2614.314,1432.397L2650.032,1451.077" id="L-T2_SPA-T2_LATENCY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_SPA LE-T2_LATENCY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2716.48,1251.973L2716.48,1266.477C2716.48,1280.982,2716.48,1309.991,2716.555,1332.326C2716.63,1354.66,2716.78,1370.321,2716.855,1378.151L2716.93,1385.981" id="L-T2_SSR-T2_LATENCY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_SSR LE-T2_LATENCY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2954.203,1239.176L2954.203,1255.813C2954.203,1272.451,2954.203,1305.725,2925.185,1340.379C2896.167,1375.033,2838.132,1411.065,2809.114,1429.082L2780.096,1447.098" id="L-T2_STATIC-T2_LATENCY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_STATIC LE-T2_LATENCY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2676.245,1540.023L2664.531,1555.359C2652.817,1570.695,2629.388,1601.367,2617.673,1628.518C2605.959,1655.668,2605.959,1679.297,2605.959,1691.112L2605.959,1702.927" id="L-T2_LATENCY-T2_ORIGIN-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_LATENCY LE-T2_ORIGIN" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2757.716,1540.023L2769.263,1555.359C2780.811,1570.695,2803.907,1601.367,2815.454,1624.252C2827.002,1647.137,2827.002,1662.235,2827.002,1669.784L2827.002,1677.333" id="L-T2_LATENCY-T2_CDN-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_LATENCY LE-T2_CDN" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1657.889,1748.82L1657.889,1759.385C1657.889,1769.951,1657.889,1791.081,1745.251,1808.282C1832.613,1825.483,2007.338,1838.755,2094.701,1845.391L2182.063,1852.027" id="L-T2_NONE-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_NONE LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M1872.811,1748.82L1872.811,1759.385C1872.811,1769.951,1872.811,1791.081,1924.356,1807.767C1975.902,1824.454,2078.993,1836.697,2130.539,1842.819L2182.085,1848.941" id="L-T2_REST-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_REST LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2125.334,1748.82L2125.334,1759.385C2125.334,1769.951,2125.334,1791.081,2136.357,1805.52C2147.379,1819.959,2169.424,1827.706,2180.447,1831.58L2191.469,1835.454" id="L-T2_GQL-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_GQL LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2383.111,1748.82L2383.111,1759.385C2383.111,1769.951,2383.111,1791.081,2372.089,1805.52C2361.066,1819.959,2339.021,1827.706,2327.999,1831.58L2316.976,1835.454" id="L-T2_GRPC-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_GRPC LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2605.959,1748.82L2605.959,1759.385C2605.959,1769.951,2605.959,1791.081,2559.358,1807.647C2512.757,1824.214,2419.556,1836.216,2372.955,1842.217L2326.354,1848.219" id="L-T2_ORIGIN-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_ORIGIN LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2827.002,1774.414L2827.002,1780.714C2827.002,1787.013,2827.002,1799.612,2743.565,1812.51C2660.128,1825.408,2493.255,1838.605,2409.818,1845.203L2326.381,1851.801" id="L-T2_CDN-T2_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_CDN LE-T2_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3650.885,258.269L3660.269,270.911C3669.654,283.552,3688.423,308.835,3697.807,327.775C3707.191,346.716,3707.191,359.315,3707.257,368.981C3707.323,378.648,3707.455,385.381,3707.521,388.748L3707.588,392.115" id="L-T3_START-T3_PROC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_START LE-T3_PROC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3543.834,228.32L3488.244,245.953C3432.654,263.586,3321.475,298.852,3265.885,322.784C3210.295,346.716,3210.295,359.315,3210.295,380.766C3210.295,402.216,3210.295,432.518,3210.295,464.953C3210.295,497.388,3210.295,531.956,3210.295,555.539C3210.295,579.122,3210.295,591.721,3210.295,616.221C3210.295,640.721,3210.295,677.122,3210.295,715.656C3210.295,754.19,3210.295,794.857,3210.295,837.126C3210.295,879.396,3210.295,923.268,3210.295,967.141C3210.295,1011.013,3210.295,1054.885,3210.295,1096.842C3210.295,1138.798,3210.295,1178.839,3210.295,1218.879C3210.295,1258.919,3210.295,1298.96,3210.295,1343.4C3210.295,1387.84,3210.295,1436.68,3210.295,1485.52C3210.295,1534.359,3210.295,1583.199,3210.295,1617.301C3210.295,1651.403,3210.295,1670.766,3210.295,1680.448L3210.295,1690.13" id="L-T3_START-T3_FN-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_START LE-T3_FN" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3757.014,479.904L3800.116,494.341C3843.217,508.777,3929.42,537.65,3972.522,558.386C4015.623,579.122,4015.623,591.721,4015.623,616.221C4015.623,640.721,4015.623,677.122,4015.623,715.656C4015.623,754.19,4015.623,794.857,4015.623,837.126C4015.623,879.396,4015.623,923.268,4015.623,967.141C4015.623,1011.013,4015.623,1054.885,4015.623,1090.443C4015.623,1126,4015.623,1153.243,4015.623,1166.864L4015.623,1180.485" id="L-T3_PROC-T3_BARE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_PROC LE-T3_BARE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3669.742,491.277L3652.521,503.818C3635.301,516.359,3600.861,541.441,3583.64,560.282C3566.42,579.122,3566.42,591.721,3566.491,603.309C3566.563,614.898,3566.706,625.475,3566.777,630.763L3566.848,636.052" id="L-T3_PROC-T3_CONT-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_PROC LE-T3_CONT" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3518.382,738.158L3485.495,754.385C3452.608,770.613,3386.834,803.068,3353.948,841.232C3321.061,879.396,3321.061,923.268,3321.061,967.141C3321.061,1011.013,3321.061,1054.885,3321.061,1090.443C3321.061,1126,3321.061,1153.243,3321.061,1166.864L3321.061,1180.485" id="L-T3_CONT-T3_COMPOSE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_CONT LE-T3_COMPOSE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3603.055,750.561L3617.058,764.721C3631.062,778.882,3659.069,807.202,3673.149,831.553C3687.23,855.903,3687.383,876.282,3687.46,886.471L3687.536,896.661" id="L-T3_CONT-T3_ORCH_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_CONT LE-T3_ORCH_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3655.622,1001.366L3640.081,1017.598C3624.539,1033.83,3593.456,1066.294,3577.915,1096.147C3562.373,1126,3562.373,1153.243,3562.373,1166.864L3562.373,1180.485" id="L-T3_ORCH_Q-T3_SIMPLE_ORCH-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_ORCH_Q LE-T3_SIMPLE_ORCH" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3719.53,1001.366L3734.905,1017.598C3750.28,1033.83,3781.03,1066.294,3796.404,1091.881C3811.779,1117.469,3811.779,1136.18,3811.779,1145.536L3811.779,1154.891" id="L-T3_ORCH_Q-T3_K8S-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_ORCH_Q LE-T3_K8S" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3321.061,1251.973L3321.061,1266.477C3321.061,1280.982,3321.061,1309.991,3368.386,1343.49C3415.712,1376.988,3510.364,1414.976,3557.69,1433.971L3605.016,1452.965" id="L-T3_COMPOSE-T3_TRAFFIC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_COMPOSE LE-T3_TRAFFIC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3562.373,1251.973L3562.373,1266.477C3562.373,1280.982,3562.373,1309.991,3574.336,1338.537C3586.299,1367.084,3610.225,1395.167,3622.188,1409.209L3634.15,1423.251" id="L-T3_SIMPLE_ORCH-T3_TRAFFIC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_SIMPLE_ORCH LE-T3_TRAFFIC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3811.779,1277.566L3811.779,1287.805C3811.779,1298.044,3811.779,1318.522,3799.979,1342.799C3788.178,1367.076,3764.577,1395.152,3752.776,1409.19L3740.975,1423.229" id="L-T3_K8S-T3_TRAFFIC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_K8S LE-T3_TRAFFIC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4015.623,1251.973L4015.623,1266.477C4015.623,1280.982,4015.623,1309.991,3974.286,1343.048C3932.949,1376.106,3850.276,1413.211,3808.939,1431.764L3767.602,1450.317" id="L-T3_BARE-T3_TRAFFIC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_BARE LE-T3_TRAFFIC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3641.904,1549.07L3631.743,1562.898C3621.582,1576.726,3601.261,1604.383,3591.1,1630.025C3580.939,1655.668,3580.939,1679.297,3580.939,1691.112L3580.939,1702.927" id="L-T3_TRAFFIC-T3_SINGLE_VM-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_TRAFFIC LE-T3_SINGLE_VM" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3751.746,1530.572L3776.14,1547.483C3800.535,1564.394,3849.323,1598.217,3873.717,1622.677C3898.111,1647.137,3898.111,1662.235,3898.111,1669.784L3898.111,1677.333" id="L-T3_TRAFFIC-T3_LB-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_TRAFFIC LE-T3_LB" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3210.295,1761.617L3210.295,1770.049C3210.295,1778.482,3210.295,1795.346,3260.563,1809.922C3310.832,1824.498,3411.368,1836.784,3461.637,1842.928L3511.905,1849.071" id="L-T3_FN-T3_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_FN LE-T3_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3580.939,1748.82L3580.939,1759.385C3580.939,1769.951,3580.939,1791.081,3580.939,1804.929C3580.939,1818.778,3580.939,1825.344,3580.939,1828.628L3580.939,1831.911" id="L-T3_SINGLE_VM-T3_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_SINGLE_VM LE-T3_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3898.111,1774.414L3898.111,1780.714C3898.111,1787.013,3898.111,1799.612,3856.753,1811.818C3815.394,1824.024,3732.677,1835.837,3691.318,1841.744L3649.96,1847.651" id="L-T3_LB-T3_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_LB LE-T3_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4583.403,734.309L4529.907,751.178C4476.41,768.047,4369.417,801.785,4315.92,840.591C4262.424,879.396,4262.424,923.268,4262.424,967.141C4262.424,1011.013,4262.424,1054.885,4262.424,1096.842C4262.424,1138.798,4262.424,1178.839,4262.424,1218.879C4262.424,1258.919,4262.424,1298.96,4262.424,1343.4C4262.424,1387.84,4262.424,1436.68,4262.424,1485.52C4262.424,1534.359,4262.424,1583.199,4262.424,1619.434C4262.424,1655.668,4262.424,1679.297,4262.424,1691.112L4262.424,1702.927" id="L-T4_START-T4_SYNC-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_START LE-T4_SYNC" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4672.02,773.527L4676.26,783.86C4680.5,794.193,4688.98,814.858,4693.298,835.582C4697.615,856.306,4697.768,877.089,4697.845,887.481L4697.922,897.872" id="L-T4_START-T4_SLOW-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_START LE-T4_SLOW" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4655.18,989.329L4618.956,1007.567C4582.733,1025.805,4510.285,1062.281,4474.062,1100.54C4437.838,1138.798,4437.838,1178.839,4437.838,1218.879C4437.838,1258.919,4437.838,1298.96,4437.838,1343.4C4437.838,1387.84,4437.838,1436.68,4437.838,1485.52C4437.838,1534.359,4437.838,1583.199,4437.838,1619.434C4437.838,1655.668,4437.838,1679.297,4437.838,1691.112L4437.838,1702.927" id="L-T4_SLOW-T4_WAIT-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_SLOW LE-T4_WAIT" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4725.068,1005.003L4736.382,1020.629C4747.695,1036.254,4770.323,1067.506,4781.709,1088.632C4793.095,1109.757,4793.238,1120.756,4793.31,1126.256L4793.382,1131.755" id="L-T4_SLOW-T4_QUEUE_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_SLOW LE-T4_QUEUE_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4748.824,1257.075L4732.477,1270.73C4716.13,1284.384,4683.437,1311.692,4667.091,1349.766C4650.744,1387.84,4650.744,1436.68,4650.744,1485.52C4650.744,1534.359,4650.744,1583.199,4650.744,1617.301C4650.744,1651.403,4650.744,1670.766,4650.744,1680.448L4650.744,1690.13" id="L-T4_QUEUE_Q-T4_MEM_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_QUEUE_Q LE-T4_MEM_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4838.079,1257.075L4854.259,1270.73C4870.439,1284.384,4902.798,1311.692,4918.978,1343.367C4935.158,1375.042,4935.158,1411.084,4935.158,1429.105L4935.158,1447.126" id="L-T4_QUEUE_Q-T4_DIST_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_QUEUE_Q LE-T4_DIST_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4935.158,1518.613L4935.158,1537.518C4935.158,1556.422,4935.158,1594.23,4935.158,1618.551C4935.158,1642.871,4935.158,1653.704,4935.158,1659.12L4935.158,1664.536" id="L-T4_DIST_Q-T4_WORKER-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_DIST_Q LE-T4_WORKER" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4262.424,1748.82L4262.424,1759.385C4262.424,1769.951,4262.424,1791.081,4301.292,1807.658C4340.16,1824.236,4417.897,1836.261,4456.765,1842.273L4495.633,1848.285" id="L-T4_SYNC-T4_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_SYNC LE-T4_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4437.838,1748.82L4437.838,1759.385C4437.838,1769.951,4437.838,1791.081,4447.814,1805.495C4457.791,1819.908,4477.744,1827.606,4487.72,1831.455L4497.697,1835.303" id="L-T4_WAIT-T4_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_WAIT LE-T4_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4650.744,1761.617L4650.744,1770.049C4650.744,1778.482,4650.744,1795.346,4642.758,1807.567C4634.773,1819.787,4618.802,1827.363,4610.816,1831.151L4602.83,1834.939" id="L-T4_MEM_Q-T4_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_MEM_Q LE-T4_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4935.158,1787.211L4935.158,1791.378C4935.158,1795.544,4935.158,1803.878,4881.782,1814.408C4828.405,1824.939,4721.652,1837.668,4668.276,1844.032L4614.899,1850.396" id="L-T4_WORKER-T4_DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_WORKER LE-T4_DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M742.035,1877.805L742.035,1881.971C742.035,1886.138,742.035,1894.471,742.035,1902.805C742.035,1911.138,742.035,1919.471,1084.156,1930.776C1426.277,1942.081,2110.518,1956.358,2452.639,1963.496L2794.76,1970.634" id="L-T1_DONE-SYNC1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T1_DONE LE-SYNC1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2254.223,1877.805L2254.223,1881.971C2254.223,1886.138,2254.223,1894.471,2254.223,1902.805C2254.223,1911.138,2254.223,1919.471,2344.314,1929.833C2434.405,1940.194,2614.588,1952.583,2704.68,1958.778L2794.771,1964.972" id="L-T2_DONE-SYNC1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T2_DONE LE-SYNC1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3580.939,1877.805L3580.939,1881.971C3580.939,1886.138,3580.939,1894.471,3580.939,1902.805C3580.939,1911.138,3580.939,1919.471,3489.321,1929.851C3397.703,1940.231,3214.466,1952.657,3122.848,1958.871L3031.229,1965.084" id="L-T3_DONE-SYNC1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T3_DONE LE-SYNC1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M4555.254,1877.805L4555.254,1881.971C4555.254,1886.138,4555.254,1894.471,4555.254,1902.805C4555.254,1911.138,4555.254,1919.471,4301.251,1930.644C4047.249,1941.817,3539.244,1955.828,3285.242,1962.834L3031.239,1969.84" id="L-T4_DONE-SYNC1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-T4_DONE LE-SYNC1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2913,1993.398L2913,1997.565C2913,2001.732,2913,2010.065,2913.066,2017.599C2913.132,2025.132,2913.264,2031.866,2913.33,2035.233L2913.396,2038.599" id="L-SYNC1-STACK-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-SYNC1 LE-STACK" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2853.23,2163.261L2819.807,2179.523C2786.384,2195.784,2719.538,2228.306,2686.115,2249.983C2652.691,2271.66,2652.691,2282.493,2652.691,2287.909L2652.691,2293.325" id="L-STACK-S1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-STACK LE-S1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2877.809,2187.841L2869.65,2200.005C2861.49,2212.17,2845.171,2236.499,2837.011,2254.08C2828.852,2271.66,2828.852,2282.493,2828.852,2287.909L2828.852,2293.325" id="L-STACK-S2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-STACK LE-S2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2950.065,2186.966L2958.492,2199.277C2966.918,2211.587,2983.772,2236.208,2992.198,2253.934C3000.625,2271.66,3000.625,2282.493,3000.625,2287.909L3000.625,2293.325" id="L-STACK-S3-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-STACK LE-S3" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2973.77,2163.261L3007.026,2179.523C3040.283,2195.784,3106.796,2228.306,3140.052,2249.983C3173.309,2271.66,3173.309,2282.493,3173.309,2287.909L3173.309,2293.325" id="L-STACK-S4-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-STACK LE-S4" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2652.691,2339.219L2652.691,2343.385C2652.691,2347.552,2652.691,2355.885,2676.987,2364.252C2701.283,2372.618,2749.874,2381.017,2774.169,2385.217L2798.465,2389.417" id="L-S1-SYNC_FILES-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-S1 LE-SYNC_FILES" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2828.852,2339.219L2828.852,2343.385C2828.852,2347.552,2828.852,2355.885,2835.971,2363.807C2843.09,2371.728,2857.328,2379.237,2864.447,2382.992L2871.566,2386.746" id="L-S2-SYNC_FILES-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-S2 LE-SYNC_FILES" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3000.625,2339.219L3000.625,2343.385C3000.625,2347.552,3000.625,2355.885,2993.506,2363.807C2986.387,2371.728,2972.149,2379.237,2965.03,2382.992L2957.911,2386.746" id="L-S3-SYNC_FILES-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-S3 LE-SYNC_FILES" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3173.309,2339.219L3173.309,2343.385C3173.309,2347.552,3173.309,2355.885,3149.592,2364.207C3125.876,2372.528,3078.443,2380.838,3054.726,2384.992L3031.01,2389.147" id="L-S4-SYNC_FILES-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-S4 LE-SYNC_FILES" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2914.738,2429.813L2914.738,2433.979C2914.738,2438.146,2914.738,2446.479,2914.804,2454.013C2914.87,2461.546,2915.002,2468.28,2915.068,2471.647L2915.134,2475.014" id="L-SYNC_FILES-FILES_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-SYNC_FILES LE-FILES_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2829.708,2623.805L2768.963,2644.277C2708.219,2664.748,2586.729,2705.69,2525.985,2747.308C2465.24,2788.926,2465.24,2831.219,2465.24,2873.512C2465.24,2915.805,2465.24,2958.098,2465.24,2993.192C2465.24,3028.286,2465.24,3056.182,2465.24,3084.078C2465.24,3111.974,2465.24,3139.87,2465.24,3175.967C2465.24,3212.065,2465.24,3256.365,2465.24,3300.664C2465.24,3344.964,2465.24,3389.263,2465.24,3421.095C2465.24,3452.926,2465.24,3472.29,2465.24,3481.971L2465.24,3491.653" id="L-FILES_Q-FILES_NONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_Q LE-FILES_NONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2957.083,2667.491L2964.643,2680.682C2972.203,2693.872,2987.323,2720.252,2994.955,2738.942C3002.587,2757.632,3002.731,2768.631,3002.802,2774.131L3002.874,2779.63" id="L-FILES_Q-FILES_WHERE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_Q LE-FILES_WHERE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2936.991,2897.141L2887.601,2914.349C2838.211,2931.558,2739.43,2965.974,2690.04,2997.13C2640.65,3028.286,2640.65,3056.182,2640.65,3084.078C2640.65,3111.974,2640.65,3139.87,2640.65,3175.967C2640.65,3212.065,2640.65,3256.365,2640.65,3300.664C2640.65,3344.964,2640.65,3389.263,2640.65,3418.962C2640.65,3448.66,2640.65,3463.758,2640.65,3471.307L2640.65,3478.856" id="L-FILES_WHERE-FILES_LOCAL-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_WHERE LE-FILES_LOCAL" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3042.713,2923.324L3053.055,2936.169C3063.398,2949.013,3084.083,2974.702,3094.425,2992.962C3104.768,3011.223,3104.768,3022.055,3104.768,3027.471L3104.768,3032.888" id="L-FILES_WHERE-FILES_BUCKET-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_WHERE LE-FILES_BUCKET" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3104.768,3129.969L3104.768,3136.268C3104.768,3142.568,3104.768,3155.167,3104.839,3166.966C3104.911,3178.765,3105.055,3189.764,3105.127,3195.263L3105.198,3200.763" id="L-FILES_BUCKET-FILES_SERVE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_BUCKET LE-FILES_SERVE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3042.378,3333.376L3009.531,3350.074C2976.685,3366.771,2910.992,3400.167,2878.145,3426.546C2845.299,3452.926,2845.299,3472.29,2845.299,3481.971L2845.299,3491.653" id="L-FILES_SERVE-FILES_PROXY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_SERVE LE-FILES_PROXY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3103.232,3394.23L3103.004,3400.786C3102.775,3407.341,3102.318,3420.452,3102.09,3432.423C3101.861,3444.395,3101.861,3455.227,3101.861,3460.643L3101.861,3466.059" id="L-FILES_SERVE-FILES_PRESIGN-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_SERVE LE-FILES_PRESIGN" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3168.157,3333.376L3200.837,3350.074C3233.517,3366.771,3298.877,3400.167,3331.556,3424.414C3364.236,3448.66,3364.236,3463.758,3364.236,3471.307L3364.236,3478.856" id="L-FILES_SERVE-FILES_CDN-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_SERVE LE-FILES_CDN" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2465.24,3537.547L2465.24,3545.979C2465.24,3554.411,2465.24,3571.276,2509.62,3584.998C2553.999,3598.719,2642.758,3609.298,2687.137,3614.587L2731.517,3619.876" id="L-FILES_NONE-SYNC2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_NONE LE-SYNC2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2640.65,3550.344L2640.65,3556.643C2640.65,3562.943,2640.65,3575.542,2658.613,3585.817C2676.575,3596.092,2712.5,3604.044,2730.462,3608.019L2748.424,3611.995" id="L-FILES_LOCAL-SYNC2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_LOCAL LE-SYNC2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2845.299,3537.547L2845.299,3545.979C2845.299,3554.411,2845.299,3571.276,2845.299,3582.992C2845.299,3594.707,2845.299,3601.274,2845.299,3604.557L2845.299,3607.841" id="L-FILES_PROXY-SYNC2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_PROXY LE-SYNC2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3101.861,3563.141L3101.861,3567.307C3101.861,3571.474,3101.861,3579.807,3078.057,3588.177C3054.253,3596.546,3006.646,3604.951,2982.842,3609.154L2959.038,3613.357" id="L-FILES_PRESIGN-SYNC2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_PRESIGN LE-SYNC2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3364.236,3550.344L3364.236,3556.643C3364.236,3562.943,3364.236,3575.542,3296.713,3587.735C3229.19,3599.928,3094.144,3611.716,3026.621,3617.61L2959.098,3623.504" id="L-FILES_CDN-SYNC2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-FILES_CDN LE-SYNC2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2845.299,3653.734L2845.299,3657.901C2845.299,3662.068,2845.299,3670.401,2845.365,3677.935C2845.431,3685.468,2845.563,3692.202,2845.629,3695.569L2845.695,3698.935" id="L-SYNC2-EXPOSE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-SYNC2 LE-EXPOSE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2792.11,3823.155L2766.929,3838.32C2741.747,3853.484,2691.383,3883.812,2666.201,3906.525C2641.02,3929.239,2641.02,3944.336,2641.02,3951.885L2641.02,3959.434" id="L-EXPOSE-E1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-EXPOSE LE-E1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.538,3876.104L2846.51,3882.444C2846.482,3888.783,2846.427,3901.462,2846.399,3913.217C2846.371,3924.973,2846.371,3935.805,2846.371,3941.221L2846.371,3946.638" id="L-EXPOSE-E2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-EXPOSE LE-E2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2899.487,3823.155L2924.502,3838.32C2949.518,3853.484,2999.548,3883.812,3024.563,3904.393C3049.578,3924.973,3049.578,3935.805,3049.578,3941.221L3049.578,3946.638" id="L-EXPOSE-E3-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-EXPOSE LE-E3" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2641.02,4005.328L2641.02,4011.628C2641.02,4017.927,2641.02,4030.526,2665.668,4049.545C2690.317,4068.565,2739.614,4094.005,2764.263,4106.724L2788.911,4119.444" id="L-E1-PROXY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-E1 LE-PROXY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.371,4018.125L2846.371,4022.292C2846.371,4026.458,2846.371,4034.792,2846.437,4042.325C2846.503,4049.859,2846.635,4056.592,2846.701,4059.959L2846.767,4063.326" id="L-E2-PROXY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-E2 LE-PROXY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3049.578,4018.125L3049.578,4022.292C3049.578,4026.458,3049.578,4034.792,3025.419,4051.641C3001.26,4068.49,2952.942,4093.856,2928.782,4106.538L2904.623,4119.221" id="L-E3-PROXY-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-E3 LE-PROXY" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2807.404,4190.447L2794.978,4203.241C2782.553,4216.035,2757.701,4241.623,2745.275,4261.966C2732.85,4282.309,2732.85,4297.407,2732.85,4304.956L2732.85,4312.505" id="L-PROXY-P1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-PROXY LE-P1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2886.338,4190.447L2898.597,4203.241C2910.856,4216.035,2935.374,4241.623,2947.634,4259.833C2959.893,4278.043,2959.893,4288.876,2959.893,4294.292L2959.893,4299.708" id="L-PROXY-P2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-PROXY LE-P2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2732.85,4358.398L2732.85,4364.698C2732.85,4370.997,2732.85,4383.596,2742.472,4393.735C2752.093,4403.874,2771.337,4411.553,2780.959,4415.392L2790.581,4419.231" id="L-P1-SECURE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-P1 LE-SECURE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2959.893,4371.195L2959.893,4375.362C2959.893,4379.529,2959.893,4387.862,2950.271,4395.868C2940.649,4403.874,2921.405,4411.553,2911.783,4415.392L2902.161,4419.231" id="L-P2-SECURE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-P2 LE-SECURE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.371,4461.789L2846.371,4465.956C2846.371,4470.122,2846.371,4478.456,2846.437,4485.989C2846.503,4493.523,2846.635,4500.256,2846.701,4503.623L2846.767,4506.99" id="L-SECURE-DNS-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-SECURE LE-DNS" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2810.572,4647.771L2801.449,4660.037C2792.327,4672.303,2774.081,4696.835,2764.959,4716.65C2755.836,4736.465,2755.836,4751.563,2755.836,4759.112L2755.836,4766.661" id="L-DNS-DNS1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DNS LE-DNS1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2883.17,4647.771L2892.126,4660.037C2901.082,4672.303,2918.994,4696.835,2927.95,4714.517C2936.906,4732.199,2936.906,4743.032,2936.906,4748.448L2936.906,4753.864" id="L-DNS-DNS2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DNS LE-DNS2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2755.836,4812.555L2755.836,4818.854C2755.836,4825.154,2755.836,4837.753,2765.562,4852.503C2775.288,4867.252,2794.74,4884.153,2804.465,4892.604L2814.191,4901.054" id="L-DNS1-TLS-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DNS1 LE-TLS" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2936.906,4825.352L2936.906,4829.518C2936.906,4833.685,2936.906,4842.018,2927.342,4854.63C2917.778,4867.242,2898.651,4884.132,2889.087,4892.577L2879.523,4901.022" id="L-DNS2-TLS-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DNS2 LE-TLS" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2818.919,4955.033L2806.878,4965.907C2794.837,4976.782,2770.754,4998.532,2758.713,5016.955C2746.672,5035.379,2746.672,5050.477,2746.672,5058.026L2746.672,5065.575" id="L-TLS-TLS1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-TLS LE-TLS1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2874.823,4955.033L2886.697,4965.907C2898.572,4976.782,2922.321,4998.532,2934.196,5014.823C2946.07,5031.114,2946.07,5041.946,2946.07,5047.362L2946.07,5052.778" id="L-TLS-TLS2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-TLS LE-TLS2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2746.672,5111.469L2746.672,5117.768C2746.672,5124.068,2746.672,5136.667,2755.039,5146.767C2763.405,5156.868,2780.139,5164.471,2788.505,5168.272L2796.872,5172.073" id="L-TLS1-OPS-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-TLS1 LE-OPS" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2946.07,5124.266L2946.07,5128.432C2946.07,5132.599,2946.07,5140.932,2937.704,5148.9C2929.337,5156.868,2912.604,5164.471,2904.237,5168.272L2895.87,5172.073" id="L-TLS2-OPS-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-TLS2 LE-OPS" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.371,5214.859L2846.371,5219.026C2846.371,5223.193,2846.371,5231.526,2846.371,5238.976C2846.371,5246.426,2846.371,5252.993,2846.371,5256.276L2846.371,5259.559" id="L-OPS-HEALTH-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-OPS LE-HEALTH" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.371,5305.453L2846.371,5309.62C2846.371,5313.786,2846.371,5322.12,2846.437,5329.653C2846.503,5337.187,2846.635,5343.92,2846.701,5347.287L2846.767,5350.654" id="L-HEALTH-MON-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-HEALTH LE-MON" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2812.641,5477.543L2803.15,5489.465C2793.66,5501.386,2774.679,5525.228,2765.188,5544.698C2755.697,5564.168,2755.697,5579.266,2755.697,5586.815L2755.697,5594.364" id="L-MON-MON1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-MON LE-MON1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2881.101,5477.543L2890.425,5489.465C2899.749,5501.386,2918.397,5525.228,2927.721,5542.565C2937.045,5559.903,2937.045,5570.735,2937.045,5576.151L2937.045,5581.567" id="L-MON-MON2-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-MON LE-MON2" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2755.697,5640.258L2755.697,5646.557C2755.697,5652.857,2755.697,5665.456,2763.798,5681.859C2771.898,5698.262,2788.099,5718.468,2796.2,5728.572L2804.3,5738.675" id="L-MON1-BACKUP-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-MON1 LE-BACKUP" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2937.045,5653.055L2937.045,5657.221C2937.045,5661.388,2937.045,5669.721,2929.105,5683.986C2921.164,5698.251,2905.284,5718.448,2897.343,5728.546L2889.403,5738.644" id="L-MON2-BACKUP-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-MON2 LE-BACKUP" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2819.042,5852.35L2813.926,5863.205C2808.81,5874.059,2798.578,5895.768,2793.462,5918.437C2788.346,5941.107,2788.346,5964.737,2788.346,5986.234C2788.346,6007.732,2788.346,6027.096,2792.987,6040.402C2797.628,6053.707,2806.911,6060.953,2811.552,6064.576L2816.193,6068.2" id="L-BACKUP-CICD-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-BACKUP LE-CICD" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2874.701,5852.35L2879.65,5863.205C2884.599,5874.059,2894.498,5895.768,2899.447,5912.038C2904.396,5928.309,2904.396,5939.141,2904.396,5944.557L2904.396,5949.973" id="L-BACKUP-BACKUP1-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-BACKUP LE-BACKUP1" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2904.396,6021.461L2904.396,6025.628C2904.396,6029.794,2904.396,6038.128,2899.755,6045.917C2895.114,6053.707,2885.832,6060.953,2881.19,6064.576L2876.549,6068.2" id="L-BACKUP1-CICD-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-BACKUP1 LE-CICD" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2846.371,6112.055L2846.371,6116.221C2846.371,6120.388,2846.371,6128.721,2846.437,6136.255C2846.503,6143.788,2846.635,6150.522,2846.701,6153.889L2846.767,6157.256" id="L-CICD-DEPLOY_Q-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-CICD LE-DEPLOY_Q" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2782.245,6304.553L2753.645,6321.541C2725.045,6338.528,2667.845,6372.502,2639.245,6401.304C2610.645,6430.107,2610.645,6453.737,2610.645,6477.367C2610.645,6500.997,2610.645,6524.628,2610.645,6555.993C2610.645,6587.358,2610.645,6626.458,2610.645,6665.559C2610.645,6704.659,2610.645,6743.759,2610.645,6772.991C2610.645,6802.223,2610.645,6821.586,2610.645,6831.268L2610.645,6840.95" id="L-DEPLOY_Q-DEPLOY_MANUAL-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_Q LE-DEPLOY_MANUAL" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2891.112,6324.938L2901.269,6338.528C2911.426,6352.118,2931.741,6379.297,2941.898,6398.303C2952.055,6417.309,2952.055,6428.141,2952.055,6433.557L2952.055,6438.973" id="L-DEPLOY_Q-DEPLOY_AUTO-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_Q LE-DEPLOY_AUTO" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2952.055,6510.461L2952.055,6516.76C2952.055,6523.06,2952.055,6535.659,2952.126,6547.458C2952.198,6559.257,2952.342,6570.256,2952.414,6575.756L2952.485,6581.255" id="L-DEPLOY_AUTO-DEPLOY_TARGET-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_AUTO LE-DEPLOY_TARGET" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2910.755,6703.763L2895.964,6716.945C2881.174,6730.128,2851.593,6756.494,2836.802,6779.358C2822.012,6802.223,2822.012,6821.586,2822.012,6831.268L2822.012,6840.95" id="L-DEPLOY_TARGET-DEPLOY_SSH-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_TARGET LE-DEPLOY_SSH" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2994.355,6703.763L3008.978,6716.945C3023.602,6730.128,3052.85,6756.494,3067.474,6775.093C3082.098,6793.692,3082.098,6804.524,3082.098,6809.94L3082.098,6815.356" id="L-DEPLOY_TARGET-DEPLOY_K8S-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_TARGET LE-DEPLOY_K8S" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2610.645,6886.844L2610.645,6895.276C2610.645,6903.708,2610.645,6920.573,2633.755,6933.958C2656.866,6947.343,2703.088,6957.249,2726.199,6962.201L2749.31,6967.154" id="L-DEPLOY_MANUAL-DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_MANUAL LE-DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M2822.012,6886.844L2822.012,6895.276C2822.012,6903.708,2822.012,6920.573,2822.012,6932.289C2822.012,6944.004,2822.012,6950.571,2822.012,6953.854L2822.012,6957.138" id="L-DEPLOY_SSH-DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_SSH LE-DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path><path d="M3082.098,6912.438L3082.098,6916.604C3082.098,6920.771,3082.098,6929.104,3050.873,6938.709C3019.649,6948.314,2957.201,6959.19,2925.977,6964.628L2894.753,6970.066" id="L-DEPLOY_K8S-DONE-0" class=" edge-thickness-normal edge-pattern-solid flowchart-link LS-DEPLOY_K8S LE-DONE" style="fill:none;" marker-end="url(#mermaid-diagram-1769347168350_flowchart-pointEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(97.09765625, 1098.7578125)"><g class="label" transform="translate(-31.95703125, -12.796875)"><foreignObject width="63.9140625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Stateless</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(535.7578125, 566.5234375)"><g class="label" transform="translate(-28.4453125, -12.796875)"><foreignObject width="56.890625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Stateful</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(288.58203125, 1218.87890625)"><g class="label" transform="translate(-38.15234375, -12.796875)"><foreignObject width="76.3046875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Ephemeral</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(964.529296875, 835.5234375)"><g class="label" transform="translate(-23.48828125, -12.796875)"><foreignObject width="46.9765625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Persist</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(519.4609375, 1339)"><g class="label" transform="translate(-34.96875, -12.796875)"><foreignObject width="69.9375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Key-Value</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(694.177734375, 1098.7578125)"><g class="label" transform="translate(-35.9375, -12.796875)"><foreignObject width="71.875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Relational</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1413.57421875, 1098.7578125)"><g class="label" transform="translate(-36.078125, -12.796875)"><foreignObject width="72.15625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Document</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(742.03515625, 1632.0390625)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(957.64453125, 1632.0390625)"><g class="label" transform="translate(-40.56640625, -12.796875)"><foreignObject width="81.1328125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Read heavy</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1192.7734375, 1632.0390625)"><g class="label" transform="translate(-42.55078125, -12.796875)"><foreignObject width="85.1015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Write heavy</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1409.59765625, 1632.0390625)"><g class="label" transform="translate(-16.36328125, -12.796875)"><foreignObject width="32.7265625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Both</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1657.888671875, 1218.87890625)"><g class="label" transform="translate(-18.1328125, -12.796875)"><foreignObject width="36.265625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">None</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2127.9609375, 1098.7578125)"><g class="label" transform="translate(-11.40625, -12.796875)"><foreignObject width="22.8125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">API</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2716.369140625, 835.5234375)"><g class="label" transform="translate(-25.09375, -12.796875)"><foreignObject width="50.1875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Web UI</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1872.810546875, 1632.0390625)"><g class="label" transform="translate(-17.43359375, -12.796875)"><foreignObject width="34.8671875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">REST</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2125.333984375, 1632.0390625)"><g class="label" transform="translate(-31.0078125, -12.796875)"><foreignObject width="62.015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">GraphQL</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2383.111328125, 1632.0390625)"><g class="label" transform="translate(-17.91796875, -12.796875)"><foreignObject width="35.8359375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">gRPC</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2954.203125, 1098.7578125)"><g class="label" transform="translate(-20.63671875, -12.796875)"><foreignObject width="41.2734375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Static</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2435.71875, 1098.7578125)"><g class="label" transform="translate(-12.13671875, -12.796875)"><foreignObject width="24.2734375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">SPA</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2716.48046875, 1098.7578125)"><g class="label" transform="translate(-12.3515625, -12.796875)"><foreignObject width="24.703125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">SSR</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2605.958984375, 1632.0390625)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2827.001953125, 1632.0390625)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3707.19140625, 334.1171875)"><g class="label" transform="translate(-35.4921875, -12.796875)"><foreignObject width="70.984375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Always on</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3210.294921875, 967.140625)"><g class="label" transform="translate(-40.6640625, -12.796875)"><foreignObject width="81.328125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">On demand</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4015.623046875, 835.5234375)"><g class="label" transform="translate(-16.203125, -12.796875)"><foreignObject width="32.40625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Bare</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3566.419921875, 566.5234375)"><g class="label" transform="translate(-34.94921875, -12.796875)"><foreignObject width="69.8984375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Container</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3321.060546875, 967.140625)"><g class="label" transform="translate(-38.72265625, -12.796875)"><foreignObject width="77.4453125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Single host</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3687.076171875, 835.5234375)"><g class="label" transform="translate(-35.34375, -12.796875)"><foreignObject width="70.6875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Multi host</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3562.373046875, 1098.7578125)"><g class="label" transform="translate(-40.19921875, -12.796875)"><foreignObject width="80.3984375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Small team</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3811.779296875, 1098.7578125)"><g class="label" transform="translate(-53.06640625, -12.796875)"><foreignObject width="106.1328125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Multiple teams</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3580.939453125, 1632.0390625)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3898.111328125, 1632.0390625)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4262.423828125, 1218.87890625)"><g class="label" transform="translate(-27.36328125, -12.796875)"><foreignObject width="54.7265625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">All sync</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4697.4609375, 835.5234375)"><g class="label" transform="translate(-37.3984375, -12.796875)"><foreignObject width="74.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Some slow</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4437.837890625, 1339)"><g class="label" transform="translate(-28.53125, -12.796875)"><foreignObject width="57.0625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Seconds</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4792.951171875, 1098.7578125)"><g class="label" transform="translate(-27.47265625, -12.796875)"><foreignObject width="54.9453125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Minutes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4650.744140625, 1485.51953125)"><g class="label" transform="translate(-14.296875, -12.796875)"><foreignObject width="28.59375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Low</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(4935.158203125, 1339)"><g class="label" transform="translate(-15.90234375, -12.796875)"><foreignObject width="31.8046875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">High</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2652.69140625, 2260.828125)"><g class="label" transform="translate(-31.83984375, -12.796875)"><foreignObject width="63.6796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">1 service</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2828.8515625, 2260.828125)"><g class="label" transform="translate(-40.0859375, -12.796875)"><foreignObject width="80.171875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">API plus DB</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3000.625, 2260.828125)"><g class="label" transform="translate(-66.3046875, -12.796875)"><foreignObject width="132.609375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">UI plus API plus DB</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3173.30859375, 2260.828125)"><g class="label" transform="translate(-44.94140625, -12.796875)"><foreignObject width="89.8828125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Plus workers</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2465.240234375, 3084.078125)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3002.443359375, 2746.6328125)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2640.650390625, 3167.765625)"><g class="label" transform="translate(-39.9453125, -12.796875)"><foreignObject width="79.890625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Small scale</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3104.767578125, 3000.390625)"><g class="label" transform="translate(-38.39453125, -12.796875)"><foreignObject width="76.7890625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Production</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2845.298828125, 3433.5625)"><g class="label" transform="translate(-39.34765625, -12.796875)"><foreignObject width="78.6953125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Low traffic</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3101.861328125, 3433.5625)"><g class="label" transform="translate(-40.953125, -12.796875)"><foreignObject width="81.90625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">High traffic</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3364.236328125, 3433.5625)"><g class="label" transform="translate(-43.8125, -12.796875)"><foreignObject width="87.625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Global users</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2641.01953125, 3914.140625)"><g class="label" transform="translate(-28.78515625, -12.796875)"><foreignObject width="57.5703125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">API only</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2846.37109375, 3914.140625)"><g class="label" transform="translate(-24.79296875, -12.796875)"><foreignObject width="49.5859375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">UI only</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3049.578125, 3914.140625)"><g class="label" transform="translate(-56.1875, -12.796875)"><foreignObject width="112.375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Both separately</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2732.849609375, 4267.2109375)"><g class="label" transform="translate(-21.79296875, -12.796875)"><foreignObject width="43.5859375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Direct</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2959.892578125, 4267.2109375)"><g class="label" transform="translate(-26.59765625, -12.796875)"><foreignObject width="53.1953125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Proxied</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2755.8359375, 4721.3671875)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2936.90625, 4721.3671875)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2746.671875, 5020.28125)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2946.0703125, 5020.28125)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2755.697265625, 5549.0703125)"><g class="label" transform="translate(-27.8125, -12.796875)"><foreignObject width="55.625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Minimal</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2937.044921875, 5549.0703125)"><g class="label" transform="translate(-13.2890625, -12.796875)"><foreignObject width="26.578125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Full</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2788.345703125, 5988.3671875)"><g class="label" transform="translate(-9.3984375, -12.796875)"><foreignObject width="18.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">No</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2904.396484375, 5917.4765625)"><g class="label" transform="translate(-11.32421875, -12.796875)"><foreignObject width="22.6484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Yes</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2610.64453125, 6548.2578125)"><g class="label" transform="translate(-25.18359375, -12.796875)"><foreignObject width="50.3671875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Manual</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2952.0546875, 6406.4765625)"><g class="label" transform="translate(-39.390625, -12.796875)"><foreignObject width="78.78125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">Automated</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2822.01171875, 6782.859375)"><g class="label" transform="translate(-10.375, -12.796875)"><foreignObject width="20.75" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">VM</span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(3082.09765625, 6782.859375)"><g class="label" transform="translate(-12.0390625, -12.796875)"><foreignObject width="24.078125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel">K8s</span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default question flowchart-label" id="flowchart-T4_START-288" transform="translate(4646.8203125, 713.5234375)"><polygon points="84.203125,0 168.40625,-84.203125 84.203125,-168.40625 0,-84.203125" class="label-container" transform="translate(-84.203125,84.203125)" style=""></polygon><g class="label" style="" transform="translate(-56.40625, -12.796875)"><rect></rect><foreignObject width="112.8125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Request timing?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T4_SYNC-408" transform="translate(4262.423828125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-69.05078125" y="-20.296875" width="138.1015625" height="40.59375"></rect><g class="label" style="" transform="translate(-61.55078125, -12.796875)"><rect></rect><foreignObject width="123.1015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Synchronous only</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T4_SLOW-410" transform="translate(4697.4609375, 967.140625)"><polygon points="64.46875,0 128.9375,-64.46875 64.46875,-128.9375 0,-64.46875" class="label-container" transform="translate(-64.46875,64.46875)" style=""></polygon><g class="label" style="" transform="translate(-36.671875, -12.796875)"><rect></rect><foreignObject width="73.34375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">How slow?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T4_WAIT-412" transform="translate(4437.837890625, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-56.36328125" y="-20.296875" width="112.7265625" height="40.59375"></rect><g class="label" style="" transform="translate(-48.86328125, -12.796875)"><rect></rect><foreignObject width="97.7265625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">User can wait</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T4_QUEUE_Q-414" transform="translate(4792.951171875, 1218.87890625)"><polygon points="82.32421875,0 164.6484375,-82.32421875 82.32421875,-164.6484375 0,-82.32421875" class="label-container" transform="translate(-82.32421875,82.32421875)" style=""></polygon><g class="label" style="" transform="translate(-54.52734375, -12.796875)"><rect></rect><foreignObject width="109.0546875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Traffic volume?</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T4_MEM_Q-416" transform="translate(4650.744140625, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-106.54296875" y="-33.09375" width="213.0859375" height="66.1875"></rect><g class="label" style="" transform="translate(-99.04296875, -25.59375)"><rect></rect><foreignObject width="198.0859375" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: In-Memory Queue<br/>Simple job queue</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T4_DIST_Q-418" transform="translate(4935.158203125, 1485.51953125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-108.7890625" y="-33.09375" width="217.578125" height="66.1875"></rect><g class="label" style="" transform="translate(-101.2890625, -25.59375)"><rect></rect><foreignObject width="202.578125" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Distributed Queue<br/>Kafka, RabbitMQ, SQS</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T4_WORKER-420" transform="translate(4935.158203125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-127.87109375" y="-58.6875" width="255.7421875" height="117.375"></rect><g class="label" style="" transform="translate(-120.37109375, -51.1875)"><rect></rect><foreignObject width="240.7421875" height="102.375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Worker Service<br/>Separate service processes queue<br/>Updates DB with result<br/>Notifies user via email</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T4_DONE-422" transform="translate(4555.25390625, 1857.5078125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-54.3828125" y="-20.296875" width="108.765625" height="40.59375"></rect><g class="label" style="" transform="translate(-46.8828125, -12.796875)"><rect></rect><foreignObject width="93.765625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Async: Ready</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T3_START-287" transform="translate(3611.833984375, 205.95703125)"><polygon points="90.36328125,0 180.7265625,-90.36328125 90.36328125,-180.7265625 0,-90.36328125" class="label-container" transform="translate(-90.36328125,90.36328125)" style=""></polygon><g class="label" style="" transform="translate(-62.56640625, -12.796875)"><rect></rect><foreignObject width="125.1328125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Execution model?</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T3_PROC-373" transform="translate(3707.19140625, 462.8203125)"><polygon points="65.90625,0 131.8125,-65.90625 65.90625,-131.8125 0,-65.90625" class="label-container" transform="translate(-65.90625,65.90625)" style=""></polygon><g class="label" style="" transform="translate(-38.109375, -12.796875)"><rect></rect><foreignObject width="76.21875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Packaging?</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T3_FN-375" transform="translate(3210.294921875, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-79.60546875" y="-33.09375" width="159.2109375" height="66.1875"></rect><g class="label" style="" transform="translate(-72.10546875, -25.59375)"><rect></rect><foreignObject width="144.2109375" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Serverless<br/>Lambda, Cloud Run</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T3_BARE-377" transform="translate(4015.623046875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-69.984375" y="-33.09375" width="139.96875" height="66.1875"></rect><g class="label" style="" transform="translate(-62.484375, -25.59375)"><rect></rect><foreignObject width="124.96875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Process<br/>systemd, pm2</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T3_CONT-379" transform="translate(3566.419921875, 713.5234375)"><polygon points="72.671875,0 145.34375,-72.671875 72.671875,-145.34375 0,-72.671875" class="label-container" transform="translate(-72.671875,72.671875)" style=""></polygon><g class="label" style="" transform="translate(-44.875, -12.796875)"><rect></rect><foreignObject width="89.75" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Scale needs?</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T3_COMPOSE-381" transform="translate(3321.060546875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-75.765625" y="-33.09375" width="151.53125" height="66.1875"></rect><g class="label" style="" transform="translate(-68.265625, -25.59375)"><rect></rect><foreignObject width="136.53125" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Compose<br/>docker-compose</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T3_ORCH_Q-383" transform="translate(3687.076171875, 967.140625)"><polygon points="65.6796875,0 131.359375,-65.6796875 65.6796875,-131.359375 0,-65.6796875" class="label-container" transform="translate(-65.6796875,65.6796875)" style=""></polygon><g class="label" style="" transform="translate(-37.8828125, -12.796875)"><rect></rect><foreignObject width="75.765625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Team size?</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T3_SIMPLE_ORCH-385" transform="translate(3562.373046875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-115.546875" y="-33.09375" width="231.09375" height="66.1875"></rect><g class="label" style="" transform="translate(-108.046875, -25.59375)"><rect></rect><foreignObject width="216.09375" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Simple Orchestrator<br/>Docker Swarm, ECS</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T3_K8S-387" transform="translate(3811.779296875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-83.859375" y="-58.6875" width="167.71875" height="117.375"></rect><g class="label" style="" transform="translate(-76.359375, -51.1875)"><rect></rect><foreignObject width="152.71875" height="102.375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Kubernetes<br/>Cluster, Namespaces<br/>Services, Pods<br/>Managed via YAML</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T3_TRAFFIC-389" transform="translate(3687.076171875, 1485.51953125)"><polygon points="108.72265625,0 217.4453125,-108.72265625 108.72265625,-217.4453125 0,-108.72265625" class="label-container" transform="translate(-108.72265625,108.72265625)" style=""></polygon><g class="label" style="" transform="translate(-68.12890625, -25.59375)"><rect></rect><foreignObject width="136.2578125" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Traffic spikes?<br/>Gateway timeouts?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T3_SINGLE_VM-397" transform="translate(3580.939453125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-61.109375" y="-20.296875" width="122.21875" height="40.59375"></rect><g class="label" style="" transform="translate(-53.609375, -12.796875)"><rect></rect><foreignObject width="107.21875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Single instance</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T3_LB-399" transform="translate(3898.111328125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-101.1640625" y="-45.890625" width="202.328125" height="91.78125"></rect><g class="label" style="" transform="translate(-93.6640625, -38.390625)"><rect></rect><foreignObject width="187.328125" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Load Balancer<br/>Distribute to multiple VMs<br/>ALB, NGINX, HAProxy</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T3_DONE-401" transform="translate(3580.939453125, 1857.5078125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-63.7734375" y="-20.296875" width="127.546875" height="40.59375"></rect><g class="label" style="" transform="translate(-56.2734375, -12.796875)"><rect></rect><foreignObject width="112.546875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Runtime: Ready</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T2_START-286" transform="translate(2129.189453125, 713.5234375)"><polygon points="81.80859375,0 163.6171875,-81.80859375 81.80859375,-163.6171875 0,-81.80859375" class="label-container" transform="translate(-81.80859375,81.80859375)" style=""></polygon><g class="label" style="" transform="translate(-54.01171875, -12.796875)"><rect></rect><foreignObject width="108.0234375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Interface type?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T2_NONE-332" transform="translate(1657.888671875, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-66.6015625" y="-20.296875" width="133.203125" height="40.59375"></rect><g class="label" style="" transform="translate(-59.1015625, -12.796875)"><rect></rect><foreignObject width="118.203125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Headless service</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T2_API-334" transform="translate(2127.9609375, 1485.51953125)"><polygon points="61.62890625,0 123.2578125,-61.62890625 61.62890625,-123.2578125 0,-61.62890625" class="label-container" transform="translate(-61.62890625,61.62890625)" style=""></polygon><g class="label" style="" transform="translate(-33.83203125, -12.796875)"><rect></rect><foreignObject width="67.6640625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">API style?</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T2_UI-336" transform="translate(2716.369140625, 967.140625)"><polygon points="66.3984375,0 132.796875,-66.3984375 66.3984375,-132.796875 0,-66.3984375" class="label-container" transform="translate(-66.3984375,66.3984375)" style=""></polygon><g class="label" style="" transform="translate(-38.6015625, -12.796875)"><rect></rect><foreignObject width="77.203125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Rendering?</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T2_REST-338" transform="translate(1872.810546875, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-98.3203125" y="-20.296875" width="196.640625" height="40.59375"></rect><g class="label" style="" transform="translate(-90.8203125, -12.796875)"><rect></rect><foreignObject width="181.640625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: REST Endpoints</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T2_GQL-340" transform="translate(2125.333984375, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-104.203125" y="-20.296875" width="208.40625" height="40.59375"></rect><g class="label" style="" transform="translate(-96.703125, -12.796875)"><rect></rect><foreignObject width="193.40625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: GraphQL Schema</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T2_GRPC-342" transform="translate(2383.111328125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-103.57421875" y="-20.296875" width="207.1484375" height="40.59375"></rect><g class="label" style="" transform="translate(-96.07421875, -12.796875)"><rect></rect><foreignObject width="192.1484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Proto Definitions</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T2_STATIC-344" transform="translate(2954.203125, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-80.40625" y="-20.296875" width="160.8125" height="40.59375"></rect><g class="label" style="" transform="translate(-72.90625, -12.796875)"><rect></rect><foreignObject width="145.8125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Static Site</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T2_SPA-346" transform="translate(2435.71875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-80.62890625" y="-33.09375" width="161.2578125" height="66.1875"></rect><g class="label" style="" transform="translate(-73.12890625, -25.59375)"><rect></rect><foreignObject width="146.2578125" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Client App<br/>React, Vue</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T2_SSR-348" transform="translate(2716.48046875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-102.6328125" y="-33.09375" width="205.265625" height="66.1875"></rect><g class="label" style="" transform="translate(-95.1328125, -25.59375)"><rect></rect><foreignObject width="190.265625" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Server Rendered<br/>Next, Nuxt</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T2_LATENCY-350" transform="translate(2716.48046875, 1485.51953125)"><polygon points="94.73828125,0 189.4765625,-94.73828125 94.73828125,-189.4765625 0,-94.73828125" class="label-container" transform="translate(-94.73828125,94.73828125)" style=""></polygon><g class="label" style="" transform="translate(-54.14453125, -25.59375)"><rect></rect><foreignObject width="108.2890625" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Global users?<br/>Latency issues?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T2_ORIGIN-356" transform="translate(2605.958984375, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-69.2734375" y="-20.296875" width="138.546875" height="40.59375"></rect><g class="label" style="" transform="translate(-61.7734375, -12.796875)"><rect></rect><foreignObject width="123.546875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Serve from origin</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T2_CDN-358" transform="translate(2827.001953125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-101.76953125" y="-45.890625" width="203.5390625" height="91.78125"></rect><g class="label" style="" transform="translate(-94.26953125, -38.390625)"><rect></rect><foreignObject width="188.5390625" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: CDN<br/>Push static assets globally<br/>Reduce latency worldwide</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T2_DONE-360" transform="translate(2254.22265625, 1857.5078125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-66.875" y="-20.296875" width="133.75" height="40.59375"></rect><g class="label" style="" transform="translate(-59.375, -12.796875)"><rect></rect><foreignObject width="118.75" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Interface: Ready</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T1_START-285" transform="translate(382.376953125, 462.8203125)"><polygon points="63.96875,0 127.9375,-63.96875 63.96875,-127.9375 0,-63.96875" class="label-container" transform="translate(-63.96875,63.96875)" style=""></polygon><g class="label" style="" transform="translate(-36.171875, -12.796875)"><rect></rect><foreignObject width="72.34375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Has state?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T1_NONE-291" transform="translate(97.09765625, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-60.2265625" y="-20.296875" width="120.453125" height="40.59375"></rect><g class="label" style="" transform="translate(-52.7265625, -12.796875)"><rect></rect><foreignObject width="105.453125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">No persistence</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T1_DUR-293" transform="translate(535.7578125, 713.5234375)"><polygon points="65.8203125,0 131.640625,-65.8203125 65.8203125,-131.640625 0,-65.8203125" class="label-container" transform="translate(-65.8203125,65.8203125)" style=""></polygon><g class="label" style="" transform="translate(-38.0234375, -12.796875)"><rect></rect><foreignObject width="76.046875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Durability?</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T1_MEM-295" transform="translate(288.58203125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-81.2578125" y="-20.296875" width="162.515625" height="40.59375"></rect><g class="label" style="" transform="translate(-73.7578125, -12.796875)"><rect></rect><foreignObject width="147.515625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: In-Memory</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T1_QUERY-297" transform="translate(964.529296875, 967.140625)"><polygon points="93.8203125,0 187.640625,-93.8203125 93.8203125,-187.640625 0,-93.8203125" class="label-container" transform="translate(-93.8203125,93.8203125)" style=""></polygon><g class="label" style="" transform="translate(-66.0234375, -12.796875)"><rect></rect><foreignObject width="132.046875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Query complexity?</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T1_FILE-299" transform="translate(519.4609375, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-99.62109375" y="-20.296875" width="199.2421875" height="40.59375"></rect><g class="label" style="" transform="translate(-92.12109375, -12.796875)"><rect></rect><foreignObject width="184.2421875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: File or KV Store</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T1_SQL-301" transform="translate(694.177734375, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-91.859375" y="-20.296875" width="183.71875" height="40.59375"></rect><g class="label" style="" transform="translate(-84.359375, -12.796875)"><rect></rect><foreignObject width="168.71875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: SQL Database</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T1_DOC-303" transform="translate(1413.57421875, 1218.87890625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-66.3984375" y="-20.296875" width="132.796875" height="40.59375"></rect><g class="label" style="" transform="translate(-58.8984375, -12.796875)"><rect></rect><foreignObject width="117.796875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: NoSQL</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-T1_SCALE-305" transform="translate(1075.81640625, 1485.51953125)"><polygon points="89.5078125,0 179.015625,-89.5078125 89.5078125,-179.015625 0,-89.5078125" class="label-container" transform="translate(-89.5078125,89.5078125)" style=""></polygon><g class="label" style="" transform="translate(-61.7109375, -12.796875)"><rect></rect><foreignObject width="123.421875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">DB load too high?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T1_SINGLE-309" transform="translate(742.03515625, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-72.953125" y="-20.296875" width="145.90625" height="40.59375"></rect><g class="label" style="" transform="translate(-65.453125, -12.796875)"><rect></rect><foreignObject width="130.90625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Single DB instance</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T1_REPLICA-311" transform="translate(957.64453125, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-92.65625" y="-45.890625" width="185.3125" height="91.78125"></rect><g class="label" style="" transform="translate(-85.15625, -38.390625)"><rect></rect><foreignObject width="170.3125" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Read Replicas<br/>Write to primary<br/>Read from replicas</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-T1_VERTICAL-313" transform="translate(1192.7734375, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-92.47265625" y="-33.09375" width="184.9453125" height="66.1875"></rect><g class="label" style="" transform="translate(-84.97265625, -25.59375)"><rect></rect><foreignObject width="169.9453125" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Vertical Scale<br/>Bigger machine</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-T1_SHARD-315" transform="translate(1409.59765625, 1728.5234375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-74.3515625" y="-20.296875" width="148.703125" height="40.59375"></rect><g class="label" style="" transform="translate(-66.8515625, -12.796875)"><rect></rect><foreignObject width="133.703125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Sharding</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-T1_DONE-317" transform="translate(742.03515625, 1857.5078125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-52.90625" y="-20.296875" width="105.8125" height="40.59375"></rect><g class="label" style="" transform="translate(-45.40625, -12.796875)"><rect></rect><foreignObject width="90.8125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">State: Ready</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-START-283" transform="translate(3007.986328125, 20.296875)"><rect style="" rx="20.296875" ry="20.296875" x="-159.46875" y="-20.296875" width="318.9375" height="40.59375"></rect><g class="label" style="" transform="translate(-146.89453125, -12.796875)"><rect></rect><foreignObject width="293.7890625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π REQUIREMENT: What are you building?</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-SYNC1-430" transform="translate(2913, 1973.1015625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-112.94140625" y="-20.296875" width="225.8828125" height="40.59375"></rect><g class="label" style="" transform="translate(-105.44140625, -12.796875)"><rect></rect><foreignObject width="210.8828125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYNC: Compose Your Stack</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-STACK-439" transform="translate(2913, 2133.21484375)"><polygon points="89.81640625,0 179.6328125,-89.81640625 89.81640625,-179.6328125 0,-89.81640625" class="label-container" transform="translate(-89.81640625,89.81640625)" style=""></polygon><g class="label" style="" transform="translate(-62.01953125, -12.796875)"><rect></rect><foreignObject width="124.0390625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Service topology?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-S1-441" transform="translate(2652.69140625, 2318.921875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-65.2734375" y="-20.296875" width="130.546875" height="40.59375"></rect><g class="label" style="" transform="translate(-57.7734375, -12.796875)"><rect></rect><foreignObject width="115.546875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Single container</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-S2-443" transform="translate(2828.8515625, 2318.921875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-60.88671875" y="-20.296875" width="121.7734375" height="40.59375"></rect><g class="label" style="" transform="translate(-53.38671875, -12.796875)"><rect></rect><foreignObject width="106.7734375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">2-service stack</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-S3-445" transform="translate(3000.625, 2318.921875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-60.88671875" y="-20.296875" width="121.7734375" height="40.59375"></rect><g class="label" style="" transform="translate(-53.38671875, -12.796875)"><rect></rect><foreignObject width="106.7734375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">3-service stack</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-S4-447" transform="translate(3173.30859375, 2318.921875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-61.796875" y="-20.296875" width="123.59375" height="40.59375"></rect><g class="label" style="" transform="translate(-54.296875, -12.796875)"><rect></rect><foreignObject width="108.59375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">N-service stack</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-SYNC_FILES-449" transform="translate(2914.73828125, 2409.515625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-111.05078125" y="-20.296875" width="222.1015625" height="40.59375"></rect><g class="label" style="" transform="translate(-103.55078125, -12.796875)"><rect></rect><foreignObject width="207.1015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYNC: File Storage Needs?</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-FILES_Q-458" transform="translate(2914.73828125, 2594.32421875)"><polygon points="114.51171875,0 229.0234375,-114.51171875 114.51171875,-229.0234375 0,-114.51171875" class="label-container" transform="translate(-114.51171875,114.51171875)" style=""></polygon><g class="label" style="" transform="translate(-73.91796875, -25.59375)"><rect></rect><foreignObject width="147.8359375" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">User uploads?<br/>Profile photos, docs?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-FILES_NONE-460" transform="translate(2465.240234375, 3517.25)"><rect class="basic label-container" style="" rx="0" ry="0" x="-60.07421875" y="-20.296875" width="120.1484375" height="40.59375"></rect><g class="label" style="" transform="translate(-52.57421875, -12.796875)"><rect></rect><foreignObject width="105.1484375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">No file storage</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-FILES_WHERE-462" transform="translate(3002.443359375, 2873.51171875)"><polygon points="89.08203125,0 178.1640625,-89.08203125 89.08203125,-178.1640625 0,-89.08203125" class="label-container" transform="translate(-89.08203125,89.08203125)" style=""></polygon><g class="label" style="" transform="translate(-61.28515625, -12.796875)"><rect></rect><foreignObject width="122.5703125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Storage location?</span></div></foreignObject></g></g><g class="node default warning flowchart-label" id="flowchart-FILES_LOCAL-464" transform="translate(2640.650390625, 3517.25)"><rect class="basic label-container" style="" rx="0" ry="0" x="-65.3359375" y="-33.09375" width="130.671875" height="66.1875"></rect><g class="label" style="" transform="translate(-57.8359375, -25.59375)"><rect></rect><foreignObject width="115.671875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Local filesystem<br/>β οΈ Fills up fast</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-FILES_BUCKET-466" transform="translate(3104.767578125, 3084.078125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-90.80078125" y="-45.890625" width="181.6015625" height="91.78125"></rect><g class="label" style="" transform="translate(-83.30078125, -38.390625)"><rect></rect><foreignObject width="166.6015625" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Cloud Bucket<br/>S3, GCS, Azure Blob<br/>Store asset ID in DB</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-FILES_SERVE-468" transform="translate(3104.767578125, 3300.6640625)"><polygon points="95.1015625,0 190.203125,-95.1015625 95.1015625,-190.203125 0,-95.1015625" class="label-container" transform="translate(-95.1015625,95.1015625)" style=""></polygon><g class="label" style="" transform="translate(-67.3046875, -12.796875)"><rect></rect><foreignObject width="134.609375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">How to serve files?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-FILES_PROXY-470" transform="translate(2845.298828125, 3517.25)"><rect class="basic label-container" style="" rx="0" ry="0" x="-89.3125" y="-20.296875" width="178.625" height="40.59375"></rect><g class="label" style="" transform="translate(-81.8125, -12.796875)"><rect></rect><foreignObject width="163.625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Proxy through backend</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-FILES_PRESIGN-472" transform="translate(3101.861328125, 3517.25)"><rect class="basic label-container" style="" rx="0" ry="0" x="-117.25" y="-45.890625" width="234.5" height="91.78125"></rect><g class="label" style="" transform="translate(-109.75, -38.390625)"><rect></rect><foreignObject width="219.5" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Pre-signed URLs<br/>User fetches direct from cloud<br/>Backend not in path</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-FILES_CDN-474" transform="translate(3364.236328125, 3517.25)"><rect class="basic label-container" style="" rx="0" ry="0" x="-95.125" y="-33.09375" width="190.25" height="66.1875"></rect><g class="label" style="" transform="translate(-87.625, -25.59375)"><rect></rect><foreignObject width="175.25" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: CDN for assets<br/>Cache at edge locations</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-SYNC2-476" transform="translate(2845.298828125, 3633.4375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-108.51953125" y="-20.296875" width="217.0390625" height="40.59375"></rect><g class="label" style="" transform="translate(-101.01953125, -12.796875)"><rect></rect><foreignObject width="202.0390625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYNC: Expose to Network</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-EXPOSE-487" transform="translate(2845.298828125, 3790.0390625)"><polygon points="86.3046875,0 172.609375,-86.3046875 86.3046875,-172.609375 0,-86.3046875" class="label-container" transform="translate(-86.3046875,86.3046875)" style=""></polygon><g class="label" style="" transform="translate(-58.5078125, -12.796875)"><rect></rect><foreignObject width="117.015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">What to expose?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-E1-489" transform="translate(2641.01953125, 3985.03125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-84.35546875" y="-20.296875" width="168.7109375" height="40.59375"></rect><g class="label" style="" transform="translate(-76.85546875, -12.796875)"><rect></rect><foreignObject width="153.7109375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Backend: 443 or 8080</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-E2-491" transform="translate(2846.37109375, 3985.03125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-70.99609375" y="-33.09375" width="141.9921875" height="66.1875"></rect><g class="label" style="" transform="translate(-63.49609375, -25.59375)"><rect></rect><foreignObject width="126.9921875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Frontend: 443<br/>Backend: internal</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-E3-493" transform="translate(3049.578125, 3985.03125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-82.2109375" y="-33.09375" width="164.421875" height="66.1875"></rect><g class="label" style="" transform="translate(-74.7109375, -25.59375)"><rect></rect><foreignObject width="149.421875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">UI: domain.com<br/>API: api.domain.com</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-PROXY-495" transform="translate(2846.37109375, 4148.76953125)"><polygon points="80.64453125,0 161.2890625,-80.64453125 80.64453125,-161.2890625 0,-80.64453125" class="label-container" transform="translate(-80.64453125,80.64453125)" style=""></polygon><g class="label" style="" transform="translate(-52.84765625, -12.796875)"><rect></rect><foreignObject width="105.6953125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Reverse proxy?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-P1-501" transform="translate(2732.849609375, 4338.1015625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-83.80859375" y="-20.296875" width="167.6171875" height="40.59375"></rect><g class="label" style="" transform="translate(-76.30859375, -12.796875)"><rect></rect><foreignObject width="152.6171875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Port exposed directly</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-P2-503" transform="translate(2959.892578125, 4338.1015625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-93.234375" y="-33.09375" width="186.46875" height="66.1875"></rect><g class="label" style="" transform="translate(-85.734375, -25.59375)"><rect></rect><foreignObject width="171.46875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Reverse Proxy<br/>NGINX, Caddy, Traefik</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-SECURE-505" transform="translate(2846.37109375, 4441.4921875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-99.421875" y="-20.296875" width="198.84375" height="40.59375"></rect><g class="label" style="" transform="translate(-91.921875, -12.796875)"><rect></rect><foreignObject width="183.84375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYNC: Secure the Edge</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-DNS-510" transform="translate(2846.37109375, 4597.6796875)"><polygon points="85.890625,0 171.78125,-85.890625 85.890625,-171.78125 0,-85.890625" class="label-container" transform="translate(-85.890625,85.890625)" style=""></polygon><g class="label" style="" transform="translate(-58.09375, -12.796875)"><rect></rect><foreignObject width="116.1875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Custom domain?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-DNS1-512" transform="translate(2755.8359375, 4792.2578125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-56.796875" y="-20.296875" width="113.59375" height="40.59375"></rect><g class="label" style="" transform="translate(-49.296875, -12.796875)"><rect></rect><foreignObject width="98.59375" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">IP access only</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-DNS2-514" transform="translate(2936.90625, 4792.2578125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-74.2734375" y="-33.09375" width="148.546875" height="66.1875"></rect><g class="label" style="" transform="translate(-66.7734375, -25.59375)"><rect></rect><foreignObject width="133.546875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: DNS<br/>A or CNAME record</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-TLS-516" transform="translate(2846.37109375, 4928.91796875)"><polygon points="53.56640625,0 107.1328125,-53.56640625 53.56640625,-107.1328125 0,-53.56640625" class="label-container" transform="translate(-53.56640625,53.56640625)" style=""></polygon><g class="label" style="" transform="translate(-25.76953125, -12.796875)"><rect></rect><foreignObject width="51.5390625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">HTTPS?</span></div></foreignObject></g></g><g class="node default warning flowchart-label" id="flowchart-TLS1-520" transform="translate(2746.671875, 5091.171875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-54.12890625" y="-20.296875" width="108.2578125" height="40.59375"></rect><g class="label" style="" transform="translate(-46.62890625, -12.796875)"><rect></rect><foreignObject width="93.2578125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">β οΈ HTTP only</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-TLS2-522" transform="translate(2946.0703125, 5091.171875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-95.26953125" y="-33.09375" width="190.5390625" height="66.1875"></rect><g class="label" style="" transform="translate(-87.76953125, -25.59375)"><rect></rect><foreignObject width="175.5390625" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: TLS Cert<br/>LetsEncrypt, Caddy auto</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-OPS-524" transform="translate(2846.37109375, 5194.5625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-120.484375" y="-20.296875" width="240.96875" height="40.59375"></rect><g class="label" style="" transform="translate(-112.984375, -12.796875)"><rect></rect><foreignObject width="225.96875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">β SYNC: Operate in Production</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-HEALTH-529" transform="translate(2846.37109375, 5285.15625)"><rect class="basic label-container" style="" rx="0" ry="0" x="-94.5625" y="-20.296875" width="189.125" height="40.59375"></rect><g class="label" style="" transform="translate(-87.0625, -12.796875)"><rect></rect><foreignObject width="174.125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Health Checks</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-MON-531" transform="translate(2846.37109375, 5433.36328125)"><polygon points="77.91015625,0 155.8203125,-77.91015625 77.91015625,-155.8203125 0,-77.91015625" class="label-container" transform="translate(-77.91015625,77.91015625)" style=""></polygon><g class="label" style="" transform="translate(-50.11328125, -12.796875)"><rect></rect><foreignObject width="100.2265625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Observability?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-MON1-533" transform="translate(2755.697265625, 5619.9609375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-40.4765625" y="-20.296875" width="80.953125" height="40.59375"></rect><g class="label" style="" transform="translate(-32.9765625, -12.796875)"><rect></rect><foreignObject width="65.953125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Logs only</span></div></foreignObject></g></g><g class="node default claude flowchart-label" id="flowchart-MON2-535" transform="translate(2937.044921875, 5619.9609375)"><rect class="basic label-container" style="" rx="0" ry="0" x="-90.87109375" y="-33.09375" width="181.7421875" height="66.1875"></rect><g class="label" style="" transform="translate(-83.37109375, -25.59375)"><rect></rect><foreignObject width="166.7421875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Observability<br/>Logs, Metrics, Traces</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-BACKUP-537" transform="translate(2846.37109375, 5791.3671875)"><polygon points="88.3125,0 176.625,-88.3125 88.3125,-176.625 0,-88.3125" class="label-container" transform="translate(-88.3125,88.3125)" style=""></polygon><g class="label" style="" transform="translate(-60.515625, -12.796875)"><rect></rect><foreignObject width="121.03125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Backups needed?</span></div></foreignObject></g></g><g class="node default sync flowchart-label" id="flowchart-CICD-541" transform="translate(2846.37109375, 6091.7578125)"><rect class="basic label-container" style="" rx="0" ry="0" x="-101.77734375" y="-20.296875" width="203.5546875" height="40.59375"></rect><g class="label" style="" transform="translate(-94.27734375, -12.796875)"><rect></rect><foreignObject width="188.5546875" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYNC: Delivery Pipeline</span></div></foreignObject></g></g><g class="node default claude pattern flowchart-label" id="flowchart-BACKUP1-543" transform="translate(2904.396484375, 5988.3671875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-71.65234375" y="-33.09375" width="143.3046875" height="66.1875"></rect><g class="label" style="" transform="translate(-64.15234375, -25.59375)"><rect></rect><foreignObject width="128.3046875" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: Backup<br/>Snapshots, Dumps</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-DEPLOY_Q-548" transform="translate(2846.37109375, 6265.3671875)"><polygon points="103.3125,0 206.625,-103.3125 103.3125,-206.625 0,-103.3125" class="label-container" transform="translate(-103.3125,103.3125)" style=""></polygon><g class="label" style="" transform="translate(-75.515625, -12.796875)"><rect></rect><foreignObject width="151.03125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Deployment method?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-DEPLOY_MANUAL-550" transform="translate(2610.64453125, 6866.546875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-52.05078125" y="-20.296875" width="104.1015625" height="40.59375"></rect><g class="label" style="" transform="translate(-44.55078125, -12.796875)"><rect></rect><foreignObject width="89.1015625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Hand deploy</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-DEPLOY_AUTO-552" transform="translate(2952.0546875, 6477.3671875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-93.78125" y="-33.09375" width="187.5625" height="66.1875"></rect><g class="label" style="" transform="translate(-86.28125, -25.59375)"><rect></rect><foreignObject width="172.5625" height="51.1875"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: CI CD Pipeline<br/>Build, Test, Deploy</span></div></foreignObject></g></g><g class="node default question flowchart-label" id="flowchart-DEPLOY_TARGET-554" transform="translate(2952.0546875, 6665.55859375)"><polygon points="79.50390625,0 159.0078125,-79.50390625 79.50390625,-159.0078125 0,-79.50390625" class="label-container" transform="translate(-79.50390625,79.50390625)" style=""></polygon><g class="label" style="" transform="translate(-51.70703125, -12.796875)"><rect></rect><foreignObject width="103.4140625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">Deploy target?</span></div></foreignObject></g></g><g class="node default default flowchart-label" id="flowchart-DEPLOY_SSH-556" transform="translate(2822.01171875, 6866.546875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-109.31640625" y="-20.296875" width="218.6328125" height="40.59375"></rect><g class="label" style="" transform="translate(-101.81640625, -12.796875)"><rect></rect><foreignObject width="203.6328125" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">SSH plus docker-compose up</span></div></foreignObject></g></g><g class="node default pattern flowchart-label" id="flowchart-DEPLOY_K8S-558" transform="translate(3082.09765625, 6866.546875)"><rect class="basic label-container" style="" rx="0" ry="0" x="-100.76953125" y="-45.890625" width="201.5390625" height="91.78125"></rect><g class="label" style="" transform="translate(-93.26953125, -38.390625)"><rect></rect><foreignObject width="186.5390625" height="76.78125"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">PATTERN: K8s Deploy<br/>kubectl apply yaml<br/>Rolling updates, Rollbacks</span></div></foreignObject></g></g><g class="node default done flowchart-label" id="flowchart-DONE-560" transform="translate(2822.01171875, 6982.734375)"><rect style="" rx="20.296875" ry="20.296875" x="-67.51953125" y="-20.296875" width="135.0390625" height="40.59375"></rect><g class="label" style="" transform="translate(-54.9453125, -12.796875)"><rect></rect><foreignObject width="109.890625" height="25.59375"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span class="nodeLabel">π SYSTEM LIVE</span></div></foreignObject></g></g></g></g></g></svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment