#149 Add design information for the Dist Git alternative replacement
Merged a year ago by t0xic0der. Opened a year ago by t0xic0der.
fedora-infra/ t0xic0der/arc diag  into  main

@@ -0,0 +1,4 @@ 

+ <?xml version="1.0" encoding="UTF-8"?>

+ <!-- Do not edit this file with editors other than draw.io -->

+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2932px" height="1103px" viewBox="-0.5 -0.5 2932 1103" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-27T09:59:23.675Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0&quot; etag=&quot;t5BeCVOrklRezgncJd6W&quot; version=&quot;22.1.4&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;jZ22eRvmopu0P4qjFBIx&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500);&#xa;</style></defs><g><path d="M 1530 280 L 1530 258 Q 1530 240 1512 240 L 1168 240 Q 1150 240 1150 258 L 1150 280" fill="#b0e3e6" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1150 280 L 1150 562 Q 1150 580 1168 580 L 1512 580 Q 1530 580 1530 562 L 1530 280" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1150 280 L 1530 280" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 130px; margin-left: 576px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Dist Git Replacement</font></div></div></div></foreignObject><text x="670" y="134" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Dist Git Replacement</text></switch></g><path d="M 1255 458 L 1210.07 458 L 1210.02 487.26" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1210 497.76 L 1203.03 483.75 L 1210.02 487.26 L 1217.03 483.78 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1469.2 457.32 L 1469.24 478 L 1469.56 487.27" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1469.92 497.77 L 1462.44 484.01 L 1469.56 487.27 L 1476.44 483.53 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1255 396 L 1255 372.74" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1255 362.24 L 1262 376.24 L 1255 372.74 L 1248 376.24 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1170" y="396" width="340" height="62" rx="9.3" ry="9.3" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 214px; margin-left: 586px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono"><b>Standard Git Forge</b><br />(RPM Specs + Sources)</font><br /></font></p></div></div></div></foreignObject><text x="670" y="217" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Standard Git Forge...</text></switch></g><path d="M 1290 500 L 1287.45 499.93 L 1287.35 471.42" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1287.31 460.92 L 1294.36 474.89 L 1287.35 471.42 L 1280.36 474.94 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1170" y="500" width="160" height="60" rx="9" ry="9" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 265px; margin-left: 586px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">HTTP API</font></p></div></div></div></foreignObject><text x="625" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 1390 500 L 1390 472.74" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1390 462.24 L 1397 476.24 L 1390 472.74 L 1383 476.24 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1350" y="500" width="160" height="60" rx="9" ry="9" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 265px; margin-left: 676px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Git API</font></p></div></div></div></foreignObject><text x="715" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><path d="M 1410.72 360 L 1424.97 359.93 L 1424.99 383.26" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1425 393.76 L 1417.98 379.77 L 1424.99 383.26 L 1431.98 379.76 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1170" y="300" width="340" height="60" rx="9" ry="9" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 165px; margin-left: 586px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Browser Frontend</span></font></p></div></div></div></foreignObject><text x="670" y="169" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Browser Frontend</text></switch></g><path d="M 1790 500 L 1790 478 Q 1790 460 1772 460 L 1608 460 Q 1590 460 1590 478 L 1590 500" fill="#b0e3e6" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1590 500 L 1590 682 Q 1590 700 1608 700 L 1772 700 Q 1790 700 1790 682 L 1790 500" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1590 500 L 1790 500" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 240px; margin-left: 796px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Compatibility</font></div></div></div></foreignObject><text x="845" y="244" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Compatibility</text></switch></g><path d="M 1650 620 L 1650 592.74" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1650 582.24 L 1657 596.24 L 1650 592.74 L 1643 596.24 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1610" y="620" width="160" height="60" rx="9" ry="9" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 325px; margin-left: 806px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">HTTP API</font></p></div></div></div></foreignObject><text x="845" y="329" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 1730 580 L 1730 607.26" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1730 617.76 L 1723 603.76 L 1730 607.26 L 1737 603.76 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1610" y="520" width="160" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 275px; margin-left: 806px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Translator Service</font></p></div></div></div></foreignObject><text x="845" y="279" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Translator Se...</text></switch></g><path d="M 1070 700 L 1070 678 Q 1070 660 1052 660 L 888 660 Q 870 660 870 678 L 870 700" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 870 700 L 870 942 Q 870 960 888 960 L 1052 960 Q 1070 960 1070 942 L 1070 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 870 700 L 1070 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 340px; margin-left: 436px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Toddlers</span></font></div></div></div></foreignObject><text x="485" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Toddlers</text></switch></g><rect x="890" y="880" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 455px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="485" y="459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="890" y="800" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 415px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">HTTP Resources</font></p></div></div></div></foreignObject><text x="485" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP Resources</text></switch></g><rect x="890" y="720" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 375px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="485" y="379" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 790 700 L 790 678 Q 790 660 772 660 L 608 660 Q 590 660 590 678 L 590 700" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 590 700 L 590 942 Q 590 960 608 960 L 772 960 Q 790 960 790 942 L 790 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 590 700 L 790 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 340px; margin-left: 296px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Releng Scripts</span></font></div></div></div></foreignObject><text x="345" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Releng Scripts</text></switch></g><rect x="610" y="880" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 455px; margin-left: 306px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="345" y="459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="610" y="800" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 415px; margin-left: 306px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">HTTP Resources</font></p></div></div></div></foreignObject><text x="345" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP Resources</text></switch></g><rect x="610" y="720" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 375px; margin-left: 306px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="345" y="379" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 510 700 L 510 678 Q 510 660 492 660 L 328 660 Q 310 660 310 678 L 310 700" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 310 700 L 310 942 Q 310 960 328 960 L 492 960 Q 510 960 510 942 L 510 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 310 700 L 510 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 340px; margin-left: 156px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">The New Hotness</span></font></div></div></div></foreignObject><text x="205" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">The New Hotness</text></switch></g><rect x="330" y="880" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 455px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="205" y="459" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="330" y="800" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 415px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">HTTP Resources</font></p></div></div></div></foreignObject><text x="205" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP Resources</text></switch></g><rect x="330" y="720" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 375px; margin-left: 166px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="205" y="379" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 2630 820 L 2630 798 Q 2630 780 2612 780 L 2448 780 Q 2430 780 2430 798 L 2430 820" fill="#f8cecc" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2430 820 L 2430 982 Q 2430 1000 2448 1000 L 2612 1000 Q 2630 1000 2630 982 L 2630 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 2430 820 L 2630 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 400px; margin-left: 1216px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Fedora CI</span></font></div></div></div></foreignObject><text x="1265" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Fedora CI</text></switch></g><rect x="2450" y="920" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 475px; margin-left: 1226px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="1265" y="479" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><rect x="2450" y="840" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 1226px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Listening</span></font></p></div></div></div></foreignObject><text x="1265" y="439" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Listening</text></switch></g><path d="M 2350 820 L 2350 798 Q 2350 780 2332 780 L 2168 780 Q 2150 780 2150 798 L 2150 820" fill="#f8cecc" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2150 820 L 2150 1062 Q 2150 1080 2168 1080 L 2332 1080 Q 2350 1080 2350 1062 L 2350 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 2150 820 L 2350 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 400px; margin-left: 1076px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">COPR</span></font></div></div></div></foreignObject><text x="1125" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">COPR</text></switch></g><rect x="2170" y="920" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 475px; margin-left: 1086px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="1125" y="479" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><rect x="2170" y="1000" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 515px; margin-left: 1086px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="1125" y="519" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="2170" y="840" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 1086px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Listening</span></font></p></div></div></div></foreignObject><text x="1125" y="439" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Listening</text></switch></g><path d="M 2070 60 L 2070 38 Q 2070 20 2052 20 L 1888 20 Q 1870 20 1870 38 L 1870 60" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1870 60 L 1870 142 Q 1870 160 1888 160 L 2052 160 Q 2070 160 2070 142 L 2070 60" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1870 60 L 2070 60" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 20px; margin-left: 936px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Datanommer</span></font></div></div></div></foreignObject><text x="985" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Datanommer</text></switch></g><rect x="1890" y="80" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 55px; margin-left: 946px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Listening</span></font></p></div></div></div></foreignObject><text x="985" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Listening</text></switch></g><path d="M 1790 200 L 1790 178 Q 1790 160 1772 160 L 1608 160 Q 1590 160 1590 178 L 1590 200" fill="#b0e3e6" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1590 200 L 1590 382 Q 1590 400 1608 400 L 1772 400 Q 1790 400 1790 382 L 1790 200" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1590 200 L 1790 200" fill="none" stroke="#0e8088" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 90px; margin-left: 796px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Messaging</font></div></div></div></foreignObject><text x="845" y="94" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Messaging</text></switch></g><path d="M 1650 320 L 1650 292.74" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1650 282.24 L 1657 296.24 L 1650 292.74 L 1643 296.24 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1610" y="320" width="160" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 175px; margin-left: 806px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Message<br />Transmission<br /></span></font></p></div></div></div></foreignObject><text x="845" y="179" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Message...</text></switch></g><path d="M 1730 280 L 1730 307.26" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1730 317.76 L 1723 303.76 L 1730 307.26 L 1737 303.76 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="1610" y="220" width="160" height="60" rx="9" ry="9" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 125px; margin-left: 806px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Messaging<br />Schema</font></p></div></div></div></foreignObject><text x="845" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging...</text></switch></g><path d="M 1510 426.97 L 1690.07 426.97 L 1690.07 392.74" fill="none" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1690.07 382.24 L 1697.07 396.24 L 1690.07 392.74 L 1683.07 396.24 Z" fill="#999999" stroke="#999999" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 220 700 L 220 678 Q 220 660 202 660 L 38 660 Q 20 660 20 678 L 20 700" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 20 700 L 20 862 Q 20 880 38 880 L 202 880 Q 220 880 220 862 L 220 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 20 700 L 220 700" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 340px; margin-left: 11px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Monitor Gating</span></font></div></div></div></foreignObject><text x="60" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Monitor Gating</text></switch></g><rect x="40" y="800" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 415px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="60" y="419" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="40" y="720" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 375px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="60" y="379" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 1050 750 L 1070.07 750 Q 1090.07 750 1090.07 730 L 1090.07 620.07 Q 1090.07 600.07 1110.07 600.07 L 1230.07 600.07 Q 1250.07 600.07 1250.05 586.4 L 1250.02 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1250 562.24 L 1257.03 576.22 L 1250.02 572.74 L 1243.03 576.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 750 L 790.07 750 Q 810.07 750 810.07 730 L 810.07 620.07 Q 810.07 600.07 830.07 600.07 L 1230.07 600.07 Q 1250.07 600.07 1250.07 586.4 L 1250.07 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1250.07 562.24 L 1257.07 576.24 L 1250.07 572.74 L 1243.07 576.24 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 490 750 L 510.07 750 Q 530.07 750 530.07 730 L 530.07 620.07 Q 530.07 600.07 550.07 600.07 L 1230.07 600.07 Q 1250.07 600.07 1250.05 586.4 L 1250.02 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1250 562.24 L 1257.03 576.22 L 1250.02 572.74 L 1243.03 576.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 200 750 L 230.07 750 Q 250.07 750 250.07 730 L 250.07 620.07 Q 250.07 600.07 270.07 600.07 L 1230.07 600.07 Q 1250.07 600.07 1250.05 586.4 L 1250.02 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1250 562.24 L 1257.03 576.22 L 1250.02 572.74 L 1243.03 576.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 200 830 L 270.07 830 Q 290.07 830 290.07 810 L 290.07 660.07 Q 290.07 640.07 310.07 640.07 L 1410.07 640.07 Q 1430.07 640.07 1430.07 620.07 L 1430.07 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430.07 562.24 L 1437.07 576.24 L 1430.07 572.74 L 1423.07 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 490 910 L 550.07 910 Q 570.07 910 570.07 890 L 570.07 660.07 Q 570.07 640.07 590.07 640.07 L 1410.07 640.07 Q 1430.07 640.07 1430.05 620.07 L 1430.01 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430 562.24 L 1437.01 576.23 L 1430.01 572.74 L 1423.01 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 910 L 830.07 910 Q 850.07 910 850.07 890 L 850.07 660.07 Q 850.07 640.07 870.07 640.07 L 1410.07 640.07 Q 1430.07 640.07 1430.07 620.07 L 1430.07 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430.07 562.24 L 1437.07 576.24 L 1430.07 572.74 L 1423.07 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1050 910 L 1110.07 910 Q 1130.07 910 1130.07 890 L 1130.07 660.07 Q 1130.07 640.07 1150.07 640.07 L 1410.07 640.07 Q 1430.07 640.07 1430.05 620.07 L 1430.01 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430 562.24 L 1437.01 576.23 L 1430.01 572.74 L 1423.01 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 490 830 L 530.07 830 Q 550.07 830 550.07 810 L 550.07 350 Q 550.07 330 570.07 330 L 1157.26 330" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1167.76 330 L 1153.76 337 L 1157.26 330 L 1153.76 323 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 830 L 810.07 830 Q 830.07 830 830.07 810 L 830.07 350 Q 830.07 330 850.07 330 L 1157.26 330" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1167.76 330 L 1153.76 337 L 1157.26 330 L 1153.76 323 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1050 830 L 1090.07 830 Q 1110.07 830 1110.07 810 L 1110.07 350 Q 1110.07 330 1130.07 330 L 1157.26 330" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1167.76 330 L 1153.76 337 L 1157.26 330 L 1153.76 323 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2070 820 L 2070 798 Q 2070 780 2052 780 L 1888 780 Q 1870 780 1870 798 L 1870 820" fill="#f8cecc" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1870 820 L 1870 1062 Q 1870 1080 1888 1080 L 2052 1080 Q 2070 1080 2070 1062 L 2070 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1870 820 L 2070 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 400px; margin-left: 936px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Fedpkg</span></font></div></div></div></foreignObject><text x="985" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Fedpkg</text></switch></g><rect x="1890" y="1000" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 515px; margin-left: 946px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Git API</span></font></p></div></div></div></foreignObject><text x="985" y="519" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git API</text></switch></g><rect x="1890" y="920" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 475px; margin-left: 946px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="985" y="479" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><rect x="1890" y="840" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 946px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Lookaside Cache</font></p></div></div></div></foreignObject><text x="985" y="439" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Lookaside Cac...</text></switch></g><path d="M 1890 950 L 1850.07 950 Q 1830.07 950 1830.07 930 L 1830.07 740.07 Q 1830.07 720.07 1810.07 720.07 L 1710.07 720.07 Q 1690.07 720.07 1690.07 706.4 L 1690.07 692.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1690.07 682.24 L 1697.07 696.24 L 1690.07 692.74 L 1683.07 696.24 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1890 1030 L 1830.07 1030 Q 1810.07 1030 1810.07 1010 L 1810.07 760.07 Q 1810.07 740.07 1790.07 740.07 L 1450.07 740.07 Q 1430.07 740.07 1430.06 720.07 L 1430 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430 562.24 L 1437.01 576.23 L 1430 572.74 L 1423.01 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1890 870 L 1870.03 870 Q 1850.07 870 1850.07 850 L 1850.07 760.07 Q 1850.07 740.07 1830.07 740.07 L 1450.07 740.07 Q 1430.07 740.07 1430.06 720.07 L 1430 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430 562.24 L 1437.01 576.23 L 1430 572.74 L 1423.01 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2170 950 L 2130.07 950 Q 2110.07 950 2110.07 930 L 2110.07 740.07 Q 2110.07 720.07 2090.07 720.07 L 1710.07 720.07 Q 1690.07 720.07 1690.05 706.4 L 1690.02 692.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1690 682.24 L 1697.03 696.22 L 1690.02 692.74 L 1683.03 696.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2170 1030 L 2110.07 1030 Q 2090.07 1030 2090.07 1010 L 2090.07 760.07 Q 2090.07 740.07 2070.07 740.07 L 1450.07 740.07 Q 1430.07 740.07 1430.06 720.07 L 1430 572.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1430 562.24 L 1437.01 576.23 L 1430 572.74 L 1423.01 576.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2170 870 L 2150.03 870 Q 2130.07 870 2130.07 850 L 2130.07 370 Q 2130.07 350 2110.07 350 L 1782.74 350" fill="none" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1772.24 350 L 1786.24 343 L 1782.74 350 L 1786.24 357 Z" fill="#ffb570" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2450 870 L 2430.03 870 Q 2410.07 870 2410.07 850 L 2410.07 370 Q 2410.07 350 2390.07 350 L 1782.74 350" fill="none" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1772.24 350 L 1786.24 343 L 1782.74 350 L 1786.24 357 Z" fill="#ffb570" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1890 110 L 1850.07 110 Q 1830.07 110 1830.07 130 L 1830.07 330 Q 1830.07 350 1810.07 350 L 1782.74 350" fill="none" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1772.24 350 L 1786.24 343 L 1782.74 350 L 1786.24 357 Z" fill="#ffb570" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1070 60 L 1070 38 Q 1070 20 1052 20 L 888 20 Q 870 20 870 38 L 870 60" fill="#fff2cc" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 870 60 L 870 222 Q 870 240 888 240 L 1052 240 Q 1070 240 1070 222 L 1070 60" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 870 60 L 1070 60" fill="none" stroke="#d6b656" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 20px; margin-left: 436px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Notifications</span></font></div></div></div></foreignObject><text x="485" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Notifications</text></switch></g><rect x="890" y="160" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 95px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="485" y="99" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><rect x="890" y="80" width="160" height="60" rx="9" ry="9" fill="#fff2cc" stroke="#d6b656" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 55px; margin-left: 446px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">Listening</span></font></p></div></div></div></foreignObject><text x="485" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Listening</text></switch></g><path d="M 1050 110 L 1550.07 110 Q 1570.07 110 1570.07 130 L 1570.07 330 Q 1570.07 350 1583.67 350 L 1597.26 350" fill="none" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1607.76 350 L 1593.76 357 L 1597.26 350 L 1593.76 343 Z" fill="#ffb570" stroke="#ffb570" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1050 190 L 1070.07 190 Q 1090.07 190 1090.07 210 L 1090.07 580.07 Q 1090.07 600.07 1110.07 600.07 L 1230.07 600.07 Q 1250.07 600.07 1250.05 586.4 L 1250.02 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1250 562.24 L 1257.03 576.22 L 1250.02 572.74 L 1243.03 576.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2910 820 L 2910 798 Q 2910 780 2892 780 L 2728 780 Q 2710 780 2710 798 L 2710 820" fill="#f8cecc" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2710 820 L 2710 902 Q 2710 920 2728 920 L 2892 920 Q 2910 920 2910 902 L 2910 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 2710 820 L 2910 820" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 400px; margin-left: 1356px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px; font-weight: 400;">Bodhi</span></font></div></div></div></foreignObject><text x="1405" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Bodhi</text></switch></g><rect x="2730" y="840" width="160" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 435px; margin-left: 1366px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><p style="line-height: 100%;"><font face="JetBrains Mono"><span style="font-size: 8px;">HTTP API</span></font></p></div></div></div></foreignObject><text x="1405" y="439" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP API</text></switch></g><path d="M 66 20 L 20 20 L 20 260 L 66 260" fill="#d5e8d4" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 66 20 L 520 20 L 520 260 L 66 260" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 66 20 L 66 260" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)rotate(-90 21.500000000000227 69.99999999999989)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 70px; margin-left: -37px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">RELATIONS</font></div></div></div></foreignObject><text x="22" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">RELATIONS</text></switch></g><path d="M 90 40 L 100 50 L 90 60 L 80 50 Z" fill="#67ab9f" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="120" y="20" width="380" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 25px; margin-left: 62px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Relation with <b>HTTP Resources</b></font></div></div></div></foreignObject><text x="62" y="29" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Relation with HTTP Resources</text></switch></g><rect x="120" y="80" width="320" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 55px; margin-left: 62px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Relation with <b>HTTP API</b></font></div></div></div></foreignObject><text x="62" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Relation with HTTP API</text></switch></g><rect x="120" y="140" width="300" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 85px; margin-left: 62px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Relation with <b>Git API</b></font></div></div></div></foreignObject><text x="62" y="89" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Relation with Git API</text></switch></g><rect x="120" y="200" width="400" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 115px; margin-left: 62px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Relation with <b>Fedora Messaging</b></font></div></div></div></foreignObject><text x="62" y="119" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Relation with Fedora Messaging</text></switch></g><path d="M 90 100 L 100 110 L 90 120 L 80 110 Z" fill="#ea6b66" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 90 160 L 100 170 L 90 180 L 80 170 Z" fill="#7ea6e0" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 90 220 L 100 230 L 90 240 L 80 230 Z" fill="#ffb570" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2436 20 L 2410.7 20 Q 2390 20 2390 40.7 L 2390 179.3 Q 2390 200 2410.7 200 L 2436 200" fill="#d5e8d4" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2436 200 L 2889.3 200 Q 2910 200 2910 179.3 L 2910 40.7 Q 2910 20 2889.3 20 L 2436 20" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 2436 20 L 2436 200" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)rotate(-90 1206.5 54.999999999999886)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 55px; margin-left: 1163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono"><span style="font-size: 10px;">APPLICATIONS<br /></span></font></div></div></div></foreignObject><text x="1207" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">APPLICATIONS&#xa;</text></switch></g><path d="M 2460 40 L 2470 50 L 2460 60 L 2450 50 Z" fill="#ffd966" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="2490" y="20" width="400" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 25px; margin-left: 1247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono"><span style="font-size: 10px;">Maintained by <b>Red Hat CPE team</b></span></font></div></div></div></foreignObject><text x="1247" y="29" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Maintained by Red Hat CPE team</text></switch></g><rect x="2490" y="80" width="340" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 55px; margin-left: 1247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono"><span style="font-size: 10px;">Maintained by <b>other teams</b></span></font></div></div></div></foreignObject><text x="1247" y="59" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Maintained by other teams</text></switch></g><path d="M 2460 100 L 2470 110 L 2460 120 L 2450 110 Z" fill="#ea6b66" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="2490" y="140" width="420" height="60" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 85px; margin-left: 1247px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><font face="JetBrains Mono"><span style="font-size: 10px;">Dist Git Replacement Deployment</span></font></div></div></div></foreignObject><text x="1247" y="89" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Dist Git Replacement Deployment</text></switch></g><path d="M 2460 160 L 2470 170 L 2460 180 L 2450 170 Z" fill="#67ab9f" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2450 950 L 2390.07 950 Q 2370.07 950 2370.07 930 L 2370.07 740.07 Q 2370.07 720.07 2350.07 720.07 L 1710.07 720.07 Q 1690.07 720.07 1690.05 706.4 L 1690.02 692.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1690 682.24 L 1697.03 696.22 L 1690.02 692.74 L 1683.03 696.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 2730 870 L 2670.07 870 Q 2650.07 870 2650.07 850 L 2650.07 740.07 Q 2650.07 720.07 2630.07 720.07 L 1710.07 720.07 Q 1690.07 720.07 1690.05 706.4 L 1690.02 692.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1690 682.24 L 1697.03 696.22 L 1690.02 692.74 L 1683.03 696.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1610 550 L 1570.07 550 Q 1550.07 550 1550.07 570 L 1550.07 585.03 Q 1550.07 600.07 1530.07 600.07 L 1310.07 600.07 Q 1290.07 600.07 1290.05 586.4 L 1290.02 572.74" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1290 562.24 L 1297.03 576.22 L 1290.02 572.74 L 1283.03 576.25 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1290.07 560 L 1290.07 580.07 Q 1290.07 600.07 1310.07 600.07 L 1530.07 600.07 Q 1550.07 600.07 1550.07 580.07 L 1550.07 565.03 Q 1550.07 550 1570.07 550 L 1597.33 550" fill="none" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1607.83 550 L 1593.83 557 L 1597.33 550 L 1593.83 543 Z" fill="#ea6b66" stroke="#ea6b66" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> 

\ No newline at end of file

@@ -0,0 +1,4 @@ 

+ <?xml version="1.0" encoding="UTF-8"?>

+ <!-- Do not edit this file with editors other than draw.io -->

+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1482px" height="503px" viewBox="-0.5 -0.5 1482 503" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-27T12:10:11.944Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0&quot; etag=&quot;e30i5yowEDhM8fXJ0H39&quot; version=&quot;22.1.4&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;HbJFM-fM4mUvvZsdPbFs&quot;&gt;7Vpbd+I2EP41PJJjY3DMYyAh2T1Jm1O2Z7d9k+3B1iJLriRu/fWVbBnbgBNCwrJbeEmk0Ywuo+8bjWRazjBZ3nOUxk8sBNLqWOGy5dy2Op2+11V/tWCVC3o9KxdEHIe5yC4FY/wvGGGhNsMhiJqiZIxInNaFAaMUAlmTIc7Zoq42YaQ+aooi2BKMA0S2pV9xKONc6hWr0PIHwFFcjGxbpiVBhbIRiBiFbFEROXctZ8gZk3kpWQ6BaN8VfsntRg2t64lxoHIfg/7vDN2PfvOmf7vXn4de+L0/XbRNL3NEZmbBrY5LVH+DCVPdqlnLlXGF+8+MFQ1tkW3UjVKwrVTt9SDzrWpYGGfoJsp4gkjWWBhrJCCJ2nknPKj1HEupd/VGr6Ez0iriKmIsIoBSLK4ClihxIJTKaIISTDSkPoMccISpaHUGT4yy2lATFNTnXtG2NrXdSP8fMg6qcQx8jgMFPOMNnxcKhcTMsBR3at7qiAVOCKKqNljEWMI4zSezUDTJ1pooz9zaqigk4tIgX+2hM+BsRkMITfMEEzJkhPGsXwfssAfXmRlnU6i09N1rB7nrucyBS1g2gsVeQ1BRF1gCkq+UijHodg1qDW0dU12UHFgDO67gf62IDO+iddclNFXBoPMNSHXejtRfCHbFWkSK6JtY19SRXwjusaxA1t8B43zMDfMtvO8bD9yGiU0UTDvWH89PupMUAgVrTS8L0TAL3yH4SECGHAFSNNLsUD7WSfUKJTc4FyLwJsEuzrmBB/5kX841h+BGItp1Hno7eGjt4GH3WDTsngUN/Xdx8CZQJ4ceZKgMONM+fcTiRRp+PN/+FMBLft0r+KcXUu0m1a7D7YeSqncWpDrS2WY9jsYvInjfMy/E8+McegTxCDJtRUUXJZoX1BfpPr7xUTCNMpq1g5whejxMscRbqXU+po8p4rhytgo244E+WVWe6SNCxCt+aIgOSrzDQ+cRIeyTh4jrS4g4KER8BT9mbPryRe7kEQLmCqxtnQBrwqJA4jmWGo6whGAmMaMXcjaT8+RJse1tuRbCCMamyriMWcQoIneltHLL13f+UueRsdS4/DtIuTIvA2gmWX1DYInlN2Ouy3/p8lXP1G6XlabbVVFRCenqW9GBrlSsdLU0y2qFnYhRqmdBMJ2ud1av8eX3hfXh0+w74zqpz8gDIMGBIMWW+jw+fIO9yzNZPWw9z3yCA9Vc3HXO85nM7b9+Pd/1TGYf7Zmsf8kT3nGVePjy5VmD+vnTAdnBsd7MUEYxTKMs3KVMYMkyEBYvZdbMtObTP5c7vvdL3fHtAz61XJi5ZuZ4/FAn5s+ZyO/P1WxB55TTv4mup0/p3VOm9EV5n5T+eKm57bwz5zamzwxn3Gr4tmh3e/Uu8ruAsdrYx/U03rG1B3xK/H9n85+oBE5BL33E1QxAvxueZ0Zvb2T0ttXbL6X3jhaJzuOT28cnDiaZ55AHuuqz98+U0mM60SEjf+QrnuylquvrtflKfi4pfdOJ88NzelUtf5mVHzzlz9ucu/8A&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500);&#xa;</style></defs><g><path d="M 960 60 L 960 38 Q 960 20 942 20 L 538 20 Q 520 20 520 38 L 520 60" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 520 60 L 520 462 Q 520 480 538 480 L 942 480 Q 960 480 960 462 L 960 60" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 520 60 L 960 60" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 20px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Core Services<br /></font></div></div></div></foreignObject><text x="370" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Core Services&#xa;</text></switch></g><rect x="540" y="180" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 110px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>Git</b></span><br /><font style="font-size: 6px;">for RPM specfiles and codebase assets</font><br /></font></div></div></div></foreignObject><text x="370" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git...</text></switch></g><rect x="540" y="80" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 60px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><b style="font-size: 10px;">Access Control List</b><br /><font style="font-size: 6px;">Users and Groups</font><br /></font></div></div></div></foreignObject><text x="370" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Access Control List...</text></switch></g><rect x="540" y="280" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 160px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>Git LFS<br /></b></span><div><font style="font-size: 6px;">for large-sized <span style="background-color: initial;">binaries and source tarballs</span></font></div></font></div></div></div></foreignObject><text x="370" y="164" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git LFS...</text></switch></g><rect x="540" y="380" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 210px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>Webhooks<br /></b></span><div><font style="font-size: 6px;">for event-based activity execution</font></div></font></div></div></div></foreignObject><text x="370" y="214" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Webhooks...</text></switch></g><path d="M 1020 254 L 960 254 M 960 246 L 1020 246 M 960 246" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1460 160 L 1460 138 Q 1460 120 1442 120 L 1038 120 Q 1020 120 1020 138 L 1020 160" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 1020 160 L 1020 362 Q 1020 380 1038 380 L 1442 380 Q 1460 380 1460 362 L 1460 160" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 1020 160 L 1460 160" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 70px; margin-left: 511px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Public Access<br /></font></div></div></div></foreignObject><text x="620" y="74" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Public Access&#xa;</text></switch></g><rect x="1040" y="180" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 110px; margin-left: 521px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>Git HTTP API</b></span><br /><font style="font-size: 6px;">for accessing repository assets using HTTP</font><br /></font></div></div></div></foreignObject><text x="620" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git HTTP API...</text></switch></g><rect x="1040" y="280" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 160px; margin-left: 521px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>Git SSH API<br /></b></span><div><font style="font-size: 6px;">for accessing repository assets using SSH</font></div></font></div></div></div></foreignObject><text x="620" y="164" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Git SSH API...</text></switch></g><path d="M 460 246 L 520 246 M 520 254 L 460 254 M 520 254" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 460 210 L 460 188 Q 460 170 442 170 L 38 170 Q 20 170 20 188 L 20 210" fill="#e1d5e7" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 20 210 L 20 312 Q 20 330 38 330 L 442 330 Q 460 330 460 312 L 460 210" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 20 210 L 460 210" fill="none" stroke="#9673a6" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 95px; margin-left: 11px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Internet Frontend<br /></font></div></div></div></foreignObject><text x="120" y="99" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Internet Frontend&#xa;</text></switch></g><rect x="40" y="230" width="400" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 135px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style=""><span style="font-size: 10px;"><b>HTTP resources</b></span><br /><font style="font-size: 6px;">for accessing information and static files</font><br /></font></div></div></div></foreignObject><text x="120" y="139" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">HTTP resources...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> 

\ No newline at end of file

@@ -0,0 +1,4 @@ 

+ <?xml version="1.0" encoding="UTF-8"?>

+ <!-- Do not edit this file with editors other than draw.io -->

+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1402px" height="463px" viewBox="-0.5 -0.5 1402 463" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-27T11:48:30.707Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0&quot; etag=&quot;sy9uWN4Qshkb8IVRyRxN&quot; version=&quot;22.1.4&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;dBhvm5xjkKls7fhV2YAq&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500);&#xa;</style></defs><g><path d="M 1140 60 L 1140 38 Q 1140 20 1122 20 L 278 20 Q 260 20 260 38 L 260 60" fill="#d5e8d4" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 260 60 L 260 422 Q 260 440 278 440 L 1122 440 Q 1140 440 1140 422 L 1140 60" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 260 60 L 1140 60" fill="none" stroke="#82b366" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 438px; height: 1px; padding-top: 20px; margin-left: 131px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Compatibility Metaservice</font></div></div></div></foreignObject><text x="350" y="24" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Compatibility Metaservice</text></switch></g><path d="M 880 220 L 832.74 220" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 822.24 220 L 836.24 213 L 832.74 220 L 836.24 227 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="880" y="190" width="240" height="120" rx="18" ry="18" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 125px; margin-left: 441px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Metaservice<br /><b>API Server</b><br /></font></div></div></div></foreignObject><text x="500" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Metaservice...</text></switch></g><path d="M 520 280 L 567.26 280" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 577.76 280 L 563.76 287 L 567.26 280 L 563.76 273 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="280" y="190" width="240" height="120" rx="18" ry="18" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 125px; margin-left: 141px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Metaservice<br /><b>API Client</b><br /></font></div></div></div></foreignObject><text x="200" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Metaservice...</text></switch></g><path d="M 820 280 L 867.26 280" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 877.76 280 L 863.76 287 L 867.26 280 L 863.76 273 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 580 220 L 532.74 220" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 522.24 220 L 536.24 213 L 532.74 220 L 536.24 227 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="580" y="190" width="240" height="120" rx="18" ry="18" fill="#f8cecc" stroke="#b85450" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 125px; margin-left: 291px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Requests<br /><b>Translator</b><br /></font></div></div></div></foreignObject><text x="350" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Requests...</text></switch></g><rect x="420" y="80" width="240" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="2" pointer-events="all"/><path d="M 440 80 L 440 180 M 640 80 L 640 180" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 65px; margin-left: 221px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;"><b>REQUEST FORMAT</b><br style="border-color: var(--border-color);" />Understood by the<br style="border-color: var(--border-color);" /><b>NEW DIST GIT API</b></font></div></div></div></foreignObject><text x="270" y="69" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">REQUEST FORMAT...</text></switch></g><rect x="420" y="320" width="240" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="2" pointer-events="all"/><path d="M 440 320 L 440 420 M 640 320 L 640 420" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 185px; margin-left: 221px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;"><b>RESPONSE FORMAT</b><br style="border-color: var(--border-color);" />Used by the<br style="border-color: var(--border-color);" /><b>NEW DIST GIT API</b></font></div></div></div></foreignObject><text x="270" y="189" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">RESPONSE FORMAT...</text></switch></g><rect x="740" y="80" width="240" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="2" pointer-events="all"/><path d="M 760 80 L 760 180 M 960 80 L 960 180" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 65px; margin-left: 381px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;"><b>REQUEST FORMAT</b><br style="border-color: var(--border-color);" />Understood by the<br style="border-color: var(--border-color);" /><b>OLD DIST GIT API</b></font></div></div></div></foreignObject><text x="430" y="69" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">REQUEST FORMAT...</text></switch></g><rect x="740" y="320" width="240" height="100" rx="15" ry="15" fill="#f5f5f5" stroke="#666666" stroke-width="2" pointer-events="all"/><path d="M 760 320 L 760 420 M 960 320 L 960 420" fill="none" stroke="#666666" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 185px; margin-left: 381px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;"><b>RESPONSE FORMAT</b><br style="border-color: var(--border-color);" />Understood by the<br style="border-color: var(--border-color);" /><b>OLD DIST GIT API</b></font></div></div></div></foreignObject><text x="430" y="189" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">RESPONSE FORMAT...</text></switch></g><path d="M 1280 160 L 1280 140 Q 1280 120 1260 120 L 1180 120 Q 1160 120 1160 140 L 1160 200 Q 1160 220 1146.37 220 L 1132.74 220" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1122.24 220 L 1136.24 213 L 1132.74 220 L 1136.24 227 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 59px; margin-left: 610px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Request</font></div></div></div></foreignObject><text x="610" y="63" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Request</text></switch></g><rect x="1180" y="160" width="200" height="180" rx="27" ry="27" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 125px; margin-left: 591px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;"><b style="border-color: var(--border-color);">Dist Git</b><br style="border-color: var(--border-color);" />Dependent<br style="border-color: var(--border-color);" /><br style="border-color: var(--border-color);" />Projects</font></div></div></div></foreignObject><text x="640" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Dist Git...</text></switch></g><rect x="20" y="160" width="200" height="180" rx="27" ry="27" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 125px; margin-left: 11px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;"><b style="border-color: var(--border-color);">Dist Git</b><br style="border-color: var(--border-color);" />Service<br style="border-color: var(--border-color);" /><br style="border-color: var(--border-color);" />HTTP API</font></div></div></div></foreignObject><text x="60" y="129" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Dist Git...</text></switch></g><path d="M 280 220 L 260 220 Q 240 220 240 200 L 240 140 Q 240 120 220 120 L 140 120 Q 120 120 120 133.63 L 120 147.26" fill="none" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 120 157.76 L 113 143.76 L 120 147.26 L 127 143.76 Z" fill="#67ab9f" stroke="#67ab9f" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 60px; margin-left: 90px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Request</font></div></div></div></foreignObject><text x="90" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Request</text></switch></g><path d="M 120 340 L 120 360 Q 120 380 140 380 L 220 380 Q 240 380 240 360 L 240 302 Q 240 282 253.63 282 L 267.26 282" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 277.76 282 L 263.76 289 L 267.26 282 L 263.76 275 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 188px; margin-left: 88px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Response</font></div></div></div></foreignObject><text x="88" y="192" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Response</text></switch></g><path d="M 1120 280 L 1140 280 Q 1160 280 1160 300 L 1160 360 Q 1160 380 1180 380 L 1260 380 Q 1280 380 1280 366.37 L 1280 352.74" fill="none" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1280 342.24 L 1287 356.24 L 1280 352.74 L 1273 356.24 Z" fill="#7ea6e0" stroke="#7ea6e0" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 190px; margin-left: 610px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 8px;">Response</font></div></div></div></foreignObject><text x="610" y="194" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Response</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> 

\ No newline at end of file

@@ -0,0 +1,4 @@ 

+ <?xml version="1.0" encoding="UTF-8"?>

+ <!-- Do not edit this file with editors other than draw.io -->

+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="862px" height="377px" viewBox="-0.5 -0.5 862 377" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-27T11:58:37.839Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0&quot; etag=&quot;r53P2aYUpYq4k7iJ1v_Z&quot; version=&quot;22.1.4&quot; type=&quot;device&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;LUq98zegvhMuq1-ipl0n&quot;&gt;7VnbctowEP0aZtoHMr5g4jxyyWXSJO0MM23yKOzFVmpbRBa3fH0lW7JlbAwTmLSd5AWk1a6kXR2dXUHHHsXra4rm4T3xIepYhr/u2OOOZV24Pf4pBJtc4DhGLggo9nORWQom+BWkUKktsA9pRZEREjE8rwo9kiTgsYoMUUpWVbUZiaqrzlEANcHEQ1Fd+gv7LMylrvJCyG8AB6Fa2TTkSIyUshSkIfLJShPZlx17RAlheStejyASsVNxye2udowWG6OQsEMMHn8+PL96r8aNSayHl6eLJbJpV86yRNFCOtyx+hGfbzgjfFq+a7aRoei/LIga6KbZQQ24gmnM+VkPs9jygZUMhhhKCI1RlA0qY4EExFA3n4R6lZlDxsSpDoQP1pVQSc8CQoII0BynZx6JudhLucrVDMU4EpC6BTakCCdpxxrek4RUlpohr7p3TdvY1u4H4vse0pSfqVC4QYkfAVUBkVtSivJQi/BY6QrHEUp4b7gKMYPJPF99xe9F5lzMQzE2eTNliDIJdX5o9pCSReKDL4dnOIpGJCI0m9eeuR54XmZGyW/QRqau03OMYi86FNS5AmWw1kQSGtdAYmB0w1XUaE/CVN5TS+F4VaK+gHKoId6VMiQvWlBMXWKRNyQcm6H5cndzy15H37/Rnw/nFJH7FJ67Ti3C4POrKbuEspAEJEHRZSnVAinCUurcETKX0X0GxjYy+GjBSPVoYI3ZozQX7SfRPnNkb7zWhsYb1Um4u49qAtHRrES3NMt6yi73Tzi180a33dmULKiEd7OeLekS0QDa5nOagUEhQgwvq5s75pTbNnkKAvpvOGbg8bhitlGeTmlJKlKiBHc4ZZBUSGhaU66Z76OqKt/sYastOvIRuLNGOup7LkxnjXTUmnsO5yirylF2naIuGhiqdwKG2n1xPhh2y/y4F7sT4CD7RK5ezb4/cBtTq31UajXfmFpVmtQy45M+tiNNFim5SMOF1c6UfEBqPTSLmoemUfvINJqZDihFG01hTjC/5drMP4SgBFavhqytR8CWvm04bfq8ke+gxFbhytt50vyISV6jwwb3poRybux6OQcNsuDQL92uLv+65XA+75hXBFz9GrN9zHrSZSdAl5gHocbcl0vIEPpXGN0B1+81MbprTe1+/zRPI/t8/9PIfc+X0Qkf7f/jdcoFV+ATioR+VpHgJGjFYGE3XPzrYK0hswG/O8F6wDP+XbHa+yw1Di41nHqlsfv+v3elYV60Vg41fbe1MDm60GgMjHsU2N76k9EOsBl7wPY24DT6fX5giXoscI5igvMPmLW03GTU38deCDFqq+JOmo5OkFysrddD8aPx6R+yvFv+NZLzQ/n/kn35Bw==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500);&#xa;</style></defs><g><path d="M 660 180 L 660 158 Q 660 140 642 140 L 238 140 Q 220 140 220 158 L 220 180" fill="#f8cecc" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 220 180 L 220 282 Q 220 300 238 300 L 642 300 Q 660 300 660 282 L 660 180" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 220 180 L 660 180" fill="none" stroke="#b85450" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 80px; margin-left: 111px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px; font-weight: normal;">Messages Handler</font></div></div></div></foreignObject><text x="220" y="84" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Messages Handler</text></switch></g><path d="M 460 240 L 432.74 240" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 422.24 240 L 436.24 233 L 432.74 240 L 436.24 247 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="460" y="200" width="180" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 120px; margin-left: 231px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Activity<br /><b>Listener</b><br /></font></div></div></div></foreignObject><text x="275" y="124" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Activity...</text></switch></g><rect x="240" y="200" width="180" height="80" rx="12" ry="12" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 120px; margin-left: 121px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Messages<br /><b>Sender</b><br /></font></div></div></div></foreignObject><text x="165" y="124" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messages...</text></switch></g><path d="M 760 300 L 760 320 Q 760 340 740 340 L 570 340 Q 550 340 550 320 L 550 292.74" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 550 282.24 L 557 296.24 L 550 292.74 L 543 296.24 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="680" y="140" width="160" height="160" rx="24" ry="24" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 110px; margin-left: 341px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;"><b style="border-color: var(--border-color);">Dist Git</b><br style="border-color: var(--border-color);" />Service<br />Events<br /></font></div></div></div></foreignObject><text x="380" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Dist Git...</text></switch></g><rect x="20" y="140" width="160" height="160" rx="24" ry="24" fill="#d5e8d4" stroke="#82b366" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 110px; margin-left: 11px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;"><b>Fedora Messaging<br /></b>Bus<br /></font></div></div></div></foreignObject><text x="50" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Fedora Messag...</text></switch></g><path d="M 330 280 L 330 320 Q 330 340 310 340 L 120 340 Q 100 340 100 326.37 L 100 312.74" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 100 302.24 L 107 316.24 L 100 312.74 L 93 316.24 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 440 100 L 440 140 L 440 100 L 440 127.26" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 440 137.76 L 433 123.76 L 440 127.26 L 447 123.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="350" y="20" width="180" height="80" rx="12" ry="12" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="2" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(2)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 30px; margin-left: 176px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><font face="JetBrains Mono" data-font-src="https://fonts.googleapis.com/css?family=JetBrains+Mono" style="font-size: 10px;">Messaging <b>Schema</b></font></div></div></div></foreignObject><text x="220" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Schema</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> 

\ No newline at end of file

file modified
+2 -1
@@ -59,13 +59,14 @@ 

      monitorgating

      releng

  

- Summary

+ Index

  -------

  

  .. toctree::

      :maxdepth: 1

  

      summary

+     solution

  

  Conclusions

  -----------

@@ -0,0 +1,212 @@ 

+ .. _solution:

+ 

+ Designing An Alternative Replacement

+ ====

+ 

+ As Pagure Dist Git is a comprehensive service that is used by over ten other

+ infrastructure services - it is important to ensure that the replacement for

+ it does not break compatibility with them. The applications dependent on

+ Pagure Dist Git mostly depend on its Git API, its HTTP API, its Lookaside

+ Cache, hosted HTTP resources as well as the messages sent to the Fedora

+ Messaging hub. Ensuring that these stream of information remain consistent

+ throughout the transition to the newer replacement.

+ 

+ It is also crucial to ensure that the solution is designed to be as agnostic

+ as possible in terms of the Git forge solution. This helps us avoid possible

+ decision biases that may arise as a consequence of a certain feature being

+ available or absent on a certain Git Forge solution. As Pagure Dist Git

+ provides a unique application around the good old Git workflow, availability

+ or absence of certain desired features similar to those from the existing

+ production deployment must be taken as a coincidence.

+ 

+ Related services

+ ----

+ 

+ The list of related services working alongside Pagure Dist Git are distributed

+ in two categories to mark whether they are maintained within the team or are

+ maintained by someone else. This helps us to decide any additional steps that

+ are required to ensure compatibility for the projects that depend on Pagure

+ Dist Git but the team cannot control the developmental direction of. Alongside

+ those, the projects that are maintained in the team are expected to have

+ changes introduced to keep up with the alternative.

+ 

+ .. image:: ../_static/dist_git_system.drawio.svg

+     :target: ../_images/dist_git_system.drawio.svg

+ 

+ Maintained by the team

+ ^^^^

+ 

+ 1. **Monitor Gating**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/monitorgating.html>`_.

+    Depending on the investigations performed on the Monitor Gating project,

+    changes can be introduced to the project to ensure that the compatibility is

+    maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 2. **The New Hotness**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/hotness.html>`_.

+    Depending on the investigations performed on The New Hotness project,

+    changes can be introduced to the project to ensure that the compatibility is

+    maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 3. **Release Engineering Scripts**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/releng.html>`_.

+    Depending on the investigations performed on the Release Engineering

+    Scripts, changes can be introduced to the project to ensure that the

+    compatibility is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 4. **Toddlers**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/toddlers.html>`_.

+    Depending on the investigations performed on the Toddlers project and the

+    scripts used, changes can be introduced to the project to ensure that the

+    compatibility is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 5. **Fedora Notifications**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/notifications.html>`_.

+    Depending on the investigations performed on the Fedora Notifications

+    project, changes can be introduced to the project to ensure that the

+    compatibility is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 6. **Datanommer**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/messaging.html>`_.

+    Depending on the investigations performed on the Fedora Messaging project,

+    changes can be introduced to the project to ensure that the compatibility is

+    maintained with the alternative chosen for Pagure Dist Git.

+ 

+ Maintained by other teams

+ ^^^^

+ 

+ 1. **Fedpkg**

+ 

+    Information about the dependence of the project on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/fedpkg.html>`_.

+    Depending on the investigations performed on the Fedpkg project, changes can

+    be recommended to the project maintainers to ensure that the compatibility

+    is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 2. **COPR**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/copr.html>`_.

+    Depending on the investigations performed on the COPR project, changes can

+    be recommended to the project maintainers to ensure that the compatibility

+    is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 3. **Fedora CI**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/ci.html>`_.

+    Depending on the investigations performed on the Fedora CI deployment,

+    changes can be recommended to the service maintainers to ensure that the

+    compatibility is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 4. **Bodhi**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git can be found

+    `here <https://fedora-arc.readthedocs.io/en/latest/dist-git-move/ci.html>`_.

+    Depending on the investigations performed on the Bodhi project, changes can

+    be recommended to the project maintainers to ensure that the compatibility

+    is maintained with the alternative chosen for Pagure Dist Git.

+ 

+ 5. **Packit**

+ 

+    Information about the dependence of the service on the production deployment

+    of Pagure Dist Git will be available soon. Depending on the investigations

+    performed on the Packit project, changes can be recommended to the project

+    maintainers to ensure that the compatibility is maintained with the

+    alternative chosen for Pagure Dist Git.

+ 

+ Interaction diagram

+ ----

+ 

+ The following illustration explains how the Pagure Dist Git alternative would

+ work alongside other infrastructure applications and services. The replacement

+ would be a system chiefly consisting of three elements - **Messages Handler**,

+ **Dist Git Service** and **Compatibility Metaservice**.

+ 

+ Messages Handler

+ ^^^^

+ 

+ .. image:: ../_static/dist_git_system_msgh.drawio.svg

+     :target: ../_images/dist_git_system_msgh.drawio.svg

+ 

+ This element is responsible for sending appropriately titled messages to the

+ Fedora Messaging bus by listening into events taking place in the Dist Git

+ Service deployment. It is important to ensure that the schema either more or

+ less the same or the changes to the schema are propagated across various

+ projects dependent on the messages emitted by the Dist Git Service to ensure

+ maximum compatibility. Some example of such projects are Fedora Notifications,

+ COPR, Fedora CI, Bodhi and Datanommer.

+ 

+ It is strongly recommended to pick a Git Forge solution that supports

+ *webhooks-based event execution* as this can significantly help save efforts

+ on writing polling conditions that lead to send of messages from the Dist Git

+ service to the Fedora Messaging bus. As such one of the previously suggested

+ projects i.e. Webhook To Fedora Messaging can prove to be extremely useful

+ here when implemented as then, this element would be reduced to being only a

+ special configuration of the said project.

+ 

+ Dist Git Service

+ ^^^^

+ 

+ .. image:: ../_static/dist_git_system_main.drawio.svg

+     :target: ../_images/dist_git_system_main.drawio.svg

+ 

+ This element is primarily responsible for storing repository resources using

+ Git (for RPM specfiles and codebase assets) and Git LFS (for large-sized

+ binaries and source tarballs) as well as for providing means to interact with

+ the said resources using an interactive API accessible both via HTTPS and SSH.

+ An internet frontend is also necessary for use-cases like managing inter and

+ intra repository collaboration, showing package statistics and information from

+ various other relevant services etc.

+ 

+ It is strongly recommended to the pick a Git Forge solution that allows for

+ granular access control management in terms of both users and groups associated

+ with a repository. Having the access control of the said solution play well

+ with the Fedora Project's existing AAA stack is crucial to ensure that the

+ group accesses can be governed from Fedora Account System groups using SAML.

+ Also, having an HTTP API that allows for customizing its capabilities to match

+ those of Pagure Dist Git is necessary.

+ 

+ Compatibility Metaservice

+ ^^^^

+ 

+ .. image:: ../_static/dist_git_system_meta.drawio.svg

+     :target: ../_images/dist_git_system_meta.drawio.svg

+ 

+ The services that depend on Pagure Dist Git and are maintained by the team can

+ easily have changes introduced to them to match the compatibility of the

+ changed Dist Git Service platform. The process can be slower for the projects

+ that depend on Pagure Dist Git and are not maintained by the team and hence it

+ is important to maintain an equivalent amount of compatibility while the

+ changes are introduced in the subsequent release by supporting the same API

+ calls while setting a obsolescence timeline.

+ 

+ The metaservice is expected to mimic the existing Pagure Dist Git API to help

+ applications and services like Fedpkg, COPR, Fedora CI, Bodhi and Packit obtain

+ the same results as they would when the older API would have been used. This is

+ done by hosting the metaservice in the same location as the Pagure Dist Git API

+ and letting it receive the requests from the clients. These requests are then

+ translated to work accordingly with the newer API schema to receive responses

+ which are again translated to the older schema.

Add design information for the Dist Git alternative replacement

Fixes #140

Otherwise LGTM, together with the summary the team that will end up implementing this will have a good overview what needs to be done

rebased onto 8c2beb4

a year ago

Pull-Request has been merged by t0xic0der

a year ago

Metadata Update from @t0xic0der:
- Request assigned

a year ago