<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Discord Bot Platform — Layered Architecture" id="06-layered-architecture">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1700" pageHeight="920" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="_band1" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="80" width="1460" height="90" as="geometry" />
        </mxCell>
        <mxCell id="_bh2" value="Bot side (untrusted)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="110" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-bot" value="&lt;b&gt;Bot Processes&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="590" y="100" width="200" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico3" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-bot">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-hook" value="&lt;b&gt;Interaction Endpoints&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="820" y="100" width="210" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico4" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-hook">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-dash" value="&lt;b&gt;Developer Portal&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1060" y="100" width="200" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico5" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.l-dash">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_band6" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="180" width="1460" height="110" as="geometry" />
        </mxCell>
        <mxCell id="_bh7" value="Edge" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="230" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-ws" value="&lt;b&gt;WebSocket Edge&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Front Door, L4&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="470" y="200" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico8" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-ws">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-api" value="&lt;b&gt;API Edge&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;auth, buckets&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="710" y="200" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico9" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-api">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-egr" value="&lt;b&gt;Interaction Egress&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;isolated pool&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="940" y="200" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico10" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-egr">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-oauth" value="&lt;b&gt;OAuth / Install&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1180" y="200" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico11" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABzklEQVRoge3XsYsUMRjG4efURgQbQQ4OxSu2EEEEwVo7Qey8VlGxFnv/BnsFCy0Ee7sDRXsrUQQREexszgOFc3HXIg7sjJPc3TK7k4H8IEXyzYT3JfnyJRQKhUKhznEc6FvEPBzBa0zxEaN+5eyf64L4qn2zBxM5LdWxRn8Nb3A69VNOBtpYxUsJE7kbYBcTh1rGjuLgIhVFOJyIrWITl/Ap9tF5fFZPpNxaMrE3MxC4l/ZV2CWo58BazFlmnMTFqjNr4OfSpczHb7yvOrMGHgtLlDMT3BFyFaw0PjinvxJ+BTcS8Qlu4uly5Oyfe+KJ+0fE3BAK2QS38KQtmLuBpHjaK3Ff7DT6ne75q/iAt7jQxYQtrOOHsOfHwvW6Ezb+TVgl1LuuJm7hFG7jbFcTNsVPDafguSZUveaRNggDMfGDMJASn52B5lViA8+kj9cpvixMUZotPMLDtuBl/ydsjm0i3NlQr8T35VXYYqzgTNWZNfB9+VrmZtw2uC68OfveIru1bTOvx2YSj/BK+nk5xoNEfJHs4LlwrYkykl6JrI7RGCkTgzBA3MRgDNBuYrtXRXPQNPGiXzl1mqdQjBO4i1/CCbS1MEWFQqFQWCZ/AdclH6RcD+9yAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-oauth">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_band12" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="310" width="1460" height="110" as="geometry" />
        </mxCell>
        <mxCell id="_bh13" value="Control plane" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="350" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-reg" value="&lt;b&gt;Application Registry&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Cosmos DB&lt;/font&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="460" y="330" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico14" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.l-reg">
          <mxGeometry x="12" y="29" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-inst" value="&lt;b&gt;Installations &amp; Grants&lt;/b&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="700" y="330" width="220" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico15" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-inst">
          <mxGeometry x="12" y="29" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-cmd" value="&lt;b&gt;Command Registry&lt;/b&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="950" y="330" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico16" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-cmd">
          <mxGeometry x="12" y="29" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-tok" value="&lt;b&gt;Token Service&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Key Vault&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1190" y="330" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico17" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.l-tok">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_band18" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="430" width="1460" height="110" as="geometry" />
        </mxCell>
        <mxCell id="_bh19" value="Session plane" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="470" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-gw" value="&lt;b&gt;Gateway Shards&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;AKS pods&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="590" y="450" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico20" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.l-gw">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-sess" value="&lt;b&gt;Session &amp; Resume&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Redis&lt;/font&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="830" y="450" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico21" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.l-sess">
          <mxGeometry x="12" y="29" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-ctr" value="&lt;b&gt;Rate-limit Counters&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Redis&lt;/font&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1060" y="450" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico22" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.l-ctr">
          <mxGeometry x="12" y="29" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_band23" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="560" width="1460" height="110" as="geometry" />
        </mxCell>
        <mxCell id="_bh24" value="Fan-out plane" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="600" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-filt" value="&lt;b&gt;Entitlement Filter&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="710" y="580" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico25" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.l-filt">
          <mxGeometry x="9" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-part" value="&lt;b&gt;Server Partitions&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Event Hubs&lt;/font&gt;" style="shape=process;size=0.08;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="940" y="580" width="200" height="70" as="geometry" />
        </mxCell>
        <mxCell id="_ico26" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAABmJLR0QA/wD/AP+gvaeTAAAEv0lEQVR4nO2bXWhcRRTH/2fuR9Jt6qLEj6pgq2hbYqKggtQiSglUofggKj6ZyMYNhIhIm4jgx4toGlBMIJ/IoqAIgohvMdFarBGqATVp1YKtVBARkjZsaja7d+b44Camuzt313D33g2d39vec2bmnz/3zpm5dwIYDAaDIXRo/Y+BgYErHMe5vyiJ6IxSKhOerOqRy+ViruvuKLwuhPgqmUwurv5eM2Z4eDglpWwLR15tYtt2qrOz82kAEADAzKSUeipaWdEjpWxjZgsALABobGzcCeC5SFXVBjQ9Pf3uxMTEeQEAnudRuRaXGyJqAbWKMUaDDQC2bbNfEhGlmdkLR1LVcQA06IKrXtgAwMxLruv6dfZIMpk8Gqi8iBgZGTlIRJ/q4isrK0uAeZS0GGM0GGM0GGM0GGM02JUkCSF8y/nrP925Q7FIAKTvj6EsiPdfaPr25P/UGCiWZUmllDYei8UkkDemu7t7fmxs7DSA2woTmfnPWCz2g99gzPYhAnf5KiJAQd0C4Iny8quHUuprAKcAXFsiPJdIJBaAvDFEpADs2uhgDLWFUNF2y3exFAb5dy5N5fLMHKPBGKPBGKOhoqpUTXqOttyoJO/2yyHis/37534NSxMQkDFEyMG3oK9lrhRdkvydKF0h/oMp0zt513V9rTOLvnkBEtAdY78JkllWVKfLIKGYpHinROiaCgaoBzJxAJvLmBf3nDgN4Nkg+qoVzOSrwRijIZBH6dWjD9jLan6vZP3KlhRyXkPDibf2frMcxJgA0HN81zbBrvZvUJT1juz7Jb2RvgMx5m85/zKAl3xvPwE4y0vjAJ4piDBQfj+RU3RJ3eudbO7gDMb020EAcPnwZEtbf+uP75Xrv5BgyjVwQ0XVmnF1UVvC28wo+l5ewM+/L+75A5hb15CbKvCTiNTtlUgrJPIFXt/+2ecry5ytrpACzOSrwRijwRijIfI5pmeq5UOA7/FNIpy9EHcfGrt7JheSrGCMYeALEA6CfftTxPRZidaPo1x5Ydx85fnMdgDnVi9JwjHBeBL/fnLVkSPGMd++NUR+/KNnqllVooNY3dTXevJcubygMHOMBmOMBmOMhkAm38OfNz9GzK8BZPnlEeONvtbZ8SDGrDaBGCMYBxh0a7k8JjwMoNCY3wDsLNP0whYbCxuUtyEiX8egPnuHyLhFm8v1ZCxr4ciDs0thSQJqwJj8+5INvTOpJmby1bB2x4yOju4TQhxQSl2y2LIs6/tEIvFR+NKqR/4c3r0lQlOrZw1tAOjv798KYFIpVV+YKaXk8fHxMx0dHTPVlRsOqVRqdzab/QSln5ZDqVQq3t7enhEAUFdXFwNQZEoeklJe7zsaVfi9hynyuSSbzW6Hfgpx0+n0NiCoTWRd9hUsO8dZ6NcxxMTSdr4MYrwwCMSYfGX5OIi+agVTlTQYYzQYYzSsnsFz/E4yMvN9g4ODuqq1qfA8r0kI/f1ARA6QN8bzvHoi35dovWXimwZmhpRSG/c8rx4wj5IWY4wGY4wGAQBEdDFqIbVCPB5PA+s+WwwNDS2X2kReThDRxa6urgZg3ZbAsqxWZv4AwFUl2pxCiAcDqwkzbyWiov+ZIKK/HMd5NApNBoPBYMjzD7S7anQZuyyIAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-part">
          <mxGeometry x="21" y="23" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_band27" value="" style="rounded=0;html=1;fillColor=#f7f9fb;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="190" y="680" width="1460" height="90" as="geometry" />
        </mxCell>
        <mxCell id="_bh28" value="Chat service" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=11;fontStyle=1;fontColor=#42536a;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="710" width="130" height="30" as="geometry" />
        </mxCell>
        <mxCell id="n.l-chat" value="&lt;b&gt;Commit Events&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="710" y="700" width="200" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico29" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-chat">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.l-perm" value="&lt;b&gt;Permission Model&lt;/b&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="940" y="700" width="200" height="50" as="geometry" />
        </mxCell>
        <mxCell id="_ico30" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.l-perm">
          <mxGeometry x="9" y="15" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_e31" value="WSS" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.l-bot" target="n.l-ws">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_e32" value="frames" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.l-ws" target="n.l-gw">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="570" y="300" />
              <mxPoint x="680" y="300" />
              <mxPoint x="680" y="430" />
              <mxPoint x="690" y="430" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e33" value="pull" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;endArrow=open;endFill=0;strokeColor=#d79b00;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.l-gw" target="n.l-part">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="690" y="550" />
              <mxPoint x="1040" y="550" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_e34" value="consume" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;endArrow=open;endFill=0;strokeColor=#d79b00;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;verticalAlign=bottom;fontFamily=Segoe UI;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.l-part" target="n.l-chat">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1040" y="680" />
              <mxPoint x="810" y="680" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="title" value="Discord Bot Platform — Layered Architecture" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1610" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1610" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg35" value="" style="rounded=1;arcSize=30;html=1;fillColor=#f5f5f5;strokeColor=#8c8c8c;" vertex="1" parent="1">
          <mxGeometry x="40" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg36" value="External / third party" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="70" y="820" width="130" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg37" value="" style="rounded=1;arcSize=30;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
          <mxGeometry x="230" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg38" value="Application we own" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="250" y="820" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg39" value="" style="rounded=1;arcSize=30;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
          <mxGeometry x="380" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg40" value="Interface / broker" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="410" y="820" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg41" value="" style="rounded=1;arcSize=30;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="540" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg42" value="Data store" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="570" y="820" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg43" value="" style="rounded=1;arcSize=30;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
          <mxGeometry x="660" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg44" value="Security / platform" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="690" y="820" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg45" value="" style="rounded=1;arcSize=30;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
          <mxGeometry x="820" y="820" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg46" value="Queue / topic" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="850" y="820" width="80" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg47" value="" style="html=1;endArrow=none;strokeColor=#5a6570;strokeWidth=1.4;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="950" y="830" as="sourcePoint" />
            <mxPoint x="980" y="830" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="_lg48" value="synchronous" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="980" y="820" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg49" value="" style="html=1;endArrow=none;dashed=1;strokeColor=#d79b00;strokeWidth=1.4;" edge="1" parent="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1070" y="830" as="sourcePoint" />
            <mxPoint x="1100" y="830" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="_lg50" value="event / async" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="1100" y="820" width="80" height="20" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Layers lower down never call upward; bots reach only the edge." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="850" width="1610" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="870" width="1610" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Integration Platform Architecture   ·   date 2026-10" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="880" width="1610" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
