Skip to content

Instantly share code, notes, and snippets.

@avirajkhare00
Created January 25, 2026 13:22
Show Gist options
  • Select an option

  • Save avirajkhare00/bb603585035c1aead5af7184c63cc6ff to your computer and use it in GitHub Desktop.

Select an option

Save avirajkhare00/bb603585035c1aead5af7184c63cc6ff to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
<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