<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="A Configuration Change — Validated, Canaried, Halted, Reverted" id="19-config-ring-rollout">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="820" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.owner" value="&lt;b&gt;Property owner&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_plate1" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.owner">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico2" 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+gvaeTAAACWklEQVRoge3Zz4tNYRzH8dfIrwmJGcZMIgpJEjZsiA1pLGhK2VDEcpLFWCkrG3tr/8GQHRNWipRhocxmombIaESNjDFj8XTrNHPunXueOfec2zTv+m7Ovd9z3p/uvec8z/eyRLm05Hy+lTiBbuzEFvzGKF6hH0M5XzMXVuAaRjAzTz3BwXI002nHc/OLJ2sKfSW4zqELw7LJJ+te4cYJWoXvdax8pa4WLV7hdp2C89UEthbsrh0/FyierPvF6nM9J/FK/cKqGJFlkQHORvZVYy2OxzTGBtgX2Zf7OWMDdET21aIzpik2wHRkXy3+xTTFBhiN7KvFSExTbIB3kX21eN+Ac1blknxvo9+xvMgA6zGWY4BS1kQ3ImVn1zjaCnZH+MifZpSdXdO4ULR4ko3Cjy9W/lbxynNZh0eyyU/gYhmytTiPD2qLT+EBtuV10bw39XAIZ7BLWHL8wWe8xmPhlrnEoiH2K7RfGI10YgMm8RBv6uhtRY+wfJ7CV3zCC/zIKpIlwBr04oowtErjozD3GRSmFePCTqsNe3EUJ4U712z+4hnuCmOaXOlW39Aqr+oXnjG5cFNYqxclX6kh7Fmo/OUSxJM1jM2x8oeFe3iZAWYwEBtgoAnkK3Uuq/yxJpBO1ttqotW2lD1ZEzeYA9id9kK1AKcb5xLNqbSDaQFasL2xLlHsSDuYFqBN+Kuo2ehKO5gWYHWDRWJJ9YqdCzUNizLAZOEW9ZHqlRZgTGNmnwtlMMube5X/9E3WN2zKEqAFdzTHYm5IWFhWFa1FB44o77nwBS+FrecSTcl/+F0YjmstwYwAAAAASUVORK5CYII=;" vertex="1" parent="n.owner">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.repo" value="&lt;b&gt;Config repo&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="290" y="80" width="210" height="620" 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,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;" vertex="1" parent="n.repo">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.comp" value="&lt;b&gt;Compiler + validator&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="530" y="80" width="210" height="620" 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+gvaeTAAACbUlEQVRoge3aO2gUURQG4C/xBUKCVhrfipBE0Uob8VFYSQoFRQtBUNTSQts0opWdgqIg2FgIFioaLBTRoBEsVFBEG0lloxAUJSHmYTFZshl3djI3M9lo9ocLO/z3nvMf5px77swsddQWDQXZ7cBhtGIAPbiM3oL85YYFuI3RCqNfFNSMxjWVxZfGb+ysmboUtGLYuNg+UUAPTAyip1YC03DGuMhBbCjjzpVxI1iSl9PJFnEDdmETFibM6cCOsd+f0FbGbcWrsutL+JJg5yueyLHgl4pue7XcrlSwK8tsnM64fgjn8wrgWUbnpdGLTlwRpVSIjRNTFb8l0HFe40OawMYUvi2FLxqtUjSmBTAvPy1BaMSctAn/NOoB1BqzOoABOXfMEMwNXDeAbXgj2qnuiI4SJVzEiwz2GnASuwP1JOKoyg3maWzevhi/OkdfVbfy0BRaK3p4KaE9xrcE2AxZE5xCq3AX10XdsjPGd+NnRpuLA7VURdJtnc5RSArNGMzqAEbwEd9z0hKE0CIewh48RjO6sL2Mv4W3GW0eED1/5IqkIu6Ozdsf49cE+DqW4KuQIm4x8Zy+PMY3BdgMWROcQutxA1dFfeBsjH+ObxltrgjUUhX1PlA0Zn0AP0T9oGYILeJRHMFNLMNDbC7jH+F1BnsN2CvaEHJFUhG/jM07FOPXBfg6nuCrkCJuMvHFcHOMnx9gM2RNcAptxAXRZ6M2f/eBLnzOaDP3YwT1PlA8/vsABqdFRTKGx0Yi0gJ4l5+WILyXQ6O8r3YFfHCq4mER7k2z8F84NRlxWf5q0C76dFp04feLXkv2FeynjlzwB27teFBcLsvEAAAAAElFTkSuQmCC;" vertex="1" parent="n.comp">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.ring" value="&lt;b&gt;Ring controller&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="760" y="80" width="210" height="620" 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,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABmJLR0QA/wD/AP+gvaeTAAAMMklEQVR4nO2da5AVRxWAv12RRwBhCfLYBbKQCBECJiUmEDFRiFg+CoQQkqgp/RHj2zKakJSliYkW6u8oPhJNlVqKGFBilQmGCOEhpgiWSXgGfPFaiDwE2QVZd9cf515Zlzk9r56embv9VXWxzNzb59w5PdM93afPqaN3MRSYXymTgTGV4weBHcDqSjmVi3aezBgA3A+cALpCynFgSeU7nhpgIvAi4YbvWXYCU3LQ12ORucC/iG/8ajkN3ORca48V5gJtJDd+tbThG0HpuBpoJb3xq+UMMNXpL3BEXd4KZMAw4AVgfMjn/gisq/w9G7gm5PP7gGuBk6m082TOKsx38yHgfQHfmwe0hHx3Rca6e1JyC2YD7gLGGb7fDOwJqWNBNqp70jIUOIJuuIPA2Aj1XIY8JbR6DgOvs6y7xwJfRzfaeeAtMeqaCbQb6vuaNa09VmjC/Mr3xQR1PmCorxVoTK21xxrL0I21F+iboM5+wJ8N9X47tdYeK4zAfPe/P0Xdiwz1tgGvT1G3xxJfRTfSegv1bzDU/xUL9XtS0B84hm6g6RZkXGeo/yjJuhePJT6AbpznLMrZbJBzi0U5npg8i26YRRbl3GaQ87RFOZ4YjAc6CTbKAaCPRVmvRSaAgmR1YJ5dLDT1eSuQglvRF7OWAf+xKKsd+J5yrh7fDeTCNoLvyHbk1dA2o5FGFSTz+QzkeQxcgd4nr81Q7npFZieykFQ6ytoFzDOceyJDuSuV43WYdfJY5hn0AdnoDOU2oQ88n8pQrqcbA4FzBBthgwP5WxTZZ4FLHMi3Shm7gNnIQk0QqxzI17qB/sDbHci3ShkbwNsM537tQP6ThnMm3TyW0KZlDzjUQfMYsjn97AmgH9LXBl38HzvU42eKDm2UbHGobF3AdKSvDcLFADBM1gDC3csLRdkawPWGcy4fvyZZJh09KfkVwY/eFsd61CG+AEG6ZDkR1evR3L5/noMuKxVdjuSgS2LK1AU0AyOVc3ksxvxBOT6SaPsPCkGZGsBkw7mXnGkRTaZJ10JRKw1guzMtLvCy4ZxvABnwRuX4MfLpdw8j4WSC0HQtHLXQAEx3YtZoTx7/BMiAK5XjeTYATbZvAJZpBBqUc3n0/1W0BtAAjHKpSFJses5miXb3g7x7z0Eu+rBKaej275DK5wZyYZ5+EOLp2512JBQMyG7i1srfp5CoICe6/Vv9u9Og12RKMCdQ9AYwGrmQHzJ85lFHusTlDmTGcCfuZyojU5QYQc3IIG8KcrdPrvx/aI462eSfSHSSHcBupFHsAv6Wo05APg2gD/AmYBbwZuBGSryxIiVHga2Ii/umSjnnUgEXDWAQ8A7EW+Z6ZElXc+nq7ZxDIpz9HmkMv+PCWCQTsmoAVyABmd+NGL5UThIF4t+I78FTSBDrv9gWYLMBTAAWV0reThGt/P+I/QTiMt6Tc4iHUXcaEO/egcBg5C2i+v8h5Ms2JFTdCiyNH9I2gP7AQuBOxCPW9ZjiO8ju3O6vZieQOycrBiNRwsYh8xNjKqUJWQVsqhzPspvrQrqHx4BfkuL3JjXYSOAzwMeBS5MKVziGrLRtr5QO4AfKZ+fhxhM4CaOQkHPTgKsqZRow3LKcY8iN8C3gVct1X8SYijDNMTNuOQwsB+5GAjIHrffPNny/jO5XI5HfejfiyBIWnTRqaUN2RTdlofRQ4Bukj769H/HevROYFFG2KVBT1DqKziTgo8i12U+6a9wKLMXieGUxuv9bWOlARrGfQwaJSbjLUL/tx2lRmIBcs43INUxy7VuAm9MocSkywIgruB3Zov0J7CyI3K/I6QBeY6H+ojMauZZrMUcv1cpK9IU0lWuQd844gg4gETltB2f4piJPc8aoZUYg1/gA8WyzDxmARuJdxOvrNyAhUrJaWHpUkftKRvLKQB/kmptiGPYsZ4iQ+WQu0Uf464kXgDkpTyjyNa/c3sZ09MglPYsx/c2VREuwtBe3MfPXKHqsc6hDGViIPOrD7HeagLenAYh3i+mL55H+x/W8/jpFnzWO9SgDfYEvIbYy2fIleuRF1Eba3Qd4Lh73QWjbwYs6A1gErkMSZJhsuqT64aGYM2ruIt+dLlsVvfwePDNjEdtpdj1OZbLow4YPHSZ/Zw0t6+dP81SqJIxDj3DaBdxRj6zba9yFTE3mSU/nzSrnnWpRTvYjNtSYD/I+HdQ6tmWtXUS0ke3381SqZGhRVXfXo8fVK8prlraunuWaf62h2bLJtDGkKB7DnvRotuysRwYJQczOSJm4aHe6dyyNzhzleEs9+taqq0mXcMkW2mDPO5pGYwHihh/Ey/WIt6nGdwlPwpw1vgEkZzxiQ43VIJMBx9HfFfcgvm15oU0EaSFbPUIz+hteF+JL+L8UuEsMH6xOCOXlf+enguMzi3Bfw3u6f2EA+oxbtbQDD+J+8LVO0ccvBl1Mf+Ahwj2H/kRAwM1JyFKh6YtdiKeQyxw5fjk4nDrEd/OvhNvvFPAGraKbiO4NtBFZdcoa7xBiZgayjzCKzVqJ8Ho/B3EfilJhF9JH34Y+Z58WzSVsb0byykBf4HZkE2lUO50mRj6DqcgFjlp5daD4APZTtmhOoScsyykDjUi+4ribSfYgsRdi0YBsQowjqAtJrbYe2To2Jv5vvIj7FDm9xS18LPBZJEB1kj0Cy0m5SWQB5jVlU+lEcuzcA0xMKL83bgyZCNyLjHO0JFVh5RAWM5kNQu7EKG8JpnIEeX+/D4kOEiVKWW/YGjYBaeg/QrZ9p7nGrcg2vky2sjciu1BbUypZLf9AEj0tQYJJBLme1drm0CZk78W9yGzmq9i5lq2IbRrjKJN0yXc48Cngk9jfCXQS8VDejnivdqI7fxR9e/h4ZEA9lQvbw4dZlnMU2RW8DJnedUpf5BG9huSbGNOUj2T+C8OZgsyQ/hBJaLkHe9vntdKBhI25mQItio0DvoDE7k86cIlbvuzkl5l5EDe/tTqg/jwlyEfQjLy6PE22d0MRgkQ+Rna/7yxyp3+afFdkU3EJ8F4kaMFzpA8y0b0UYUHot9j7PW3INVoKvAcHqWjzChQ5CXgrsmx5A8lb927yj82/h+RzHEeQuICbkCn1rTh2di2K4+dYJDxsNURs9e+wwAZtyBxFV6ba6dQhr18DQj53EgkPWw0Ru6Pyr8tsp6VkFDIP8Dj6Y9P2a2gcRhj0ehzRvRRh44uOaTJoZo56zTToVRSvaiNlSRixy3DuKmdaXIwp7MpOZ1qkoCwNoAXpR4PIswFMVY6fpATJIqA8DQBkxB+EZgQXaLJ3ONUiBWVqANojNc8GoDlZlOLxD+VqANo4YDj5jLSb0OMkm8YshaIWGgDk8xQwDQB9A8gAU7+aRwMwDT59F5ABf0cfWbtwT+/JDOX4YfwMX2asInjS5Shup7Xr0ANor3CoR2rK9AQA8YMPYgTJF2SSMBl9ClrTsZCUrQFsNpy70ZkWZlkmHT0p6YfuYPITh3osV3Roo0AuWrXKRoIvvsuB1yFFh/UOdbBC2boA0PvYMcDlDuRPRHe9LlX/D+VsAJsM56zthDFgCqxp0s1jiYFIwsegR7ALAzyvyD6LAx8+j/AMwUboIObOmJiMQXd5/02GcjOjjF0AiKt0EPVkG9puEfqEUykbQFm5HN0V69kM5T6nyOykxH77ZeUFgo3RTnAG0rQ0om9/25KBPCeUtQsA+IVyvA+SmdQ2H0O/XqWa/68VmtEHZAexG7OoL3pYlg5KsFevVlmLPhZYbFHOBw1ytAGpxwG3oxtmo0U5WwxyFlqU44lJPyTKiGYcG5nOZhjqP0J24fE8EXkY3UCbSe8ooi0+dSE5+jw5MwLzlvM0j+hbDfW2UrtRykrHMnRD7SPZGn1/zLF3H0mttccaTZgjlyV5VD9kqO8M9iOielKyFN1g54nnOTwLc8j1h61p7bHGEMwxdA8RbcJmfIR6BlvW3WMJU1TRLmSD6WWG708gPEi2ySHEUwBWYjZgC8GeQwvRff2rZXnGujunKDGCbNKABFsK8w98EVk6rkMSZYRtL3sFuBbJuOEpONOIl/QirJwmQbx9T77cgJ1GECnNiqeYvJN0Ie5P4Y1feiYSnhIvqOxA9gB6aoABSE4CU4bUajmGZDi5KK9eLVKLbwEmhiCvgPORQV01p9FBJD/BauBJpNvoFfwXLZaCZsXBVDUAAAAASUVORK5CYII=;" vertex="1" parent="n.ring">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.canary" value="&lt;b&gt;Canary PoP · WAW&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1000" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico6" 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+gvaeTAAAB9ElEQVRoge3YvY9MURjH8Q8hhMR62YKIAoleIUS8lBIv0UhEolJS+Q/0uo1oKLQUOlsQ3SZIJBIFEhReG5FBkJVdRnHmrmP23N2bDffMcL7Jk9x5Zs69z++ec555zkOh8H+zKOFbi9VtB9KAH3iF73U/GME4ugNsH3CiTsDYAATYxCaxqQp6cSRgT52yAWMZdlYfYgHL249FB2dwFLcj/xUcwjlMJcYlY32k/eVwKnr+SrzHXb8nl9TSPll9Gc9ADp5F11/wFs+FICueNr1Zjhm4hqW95x8QUmQH23q+ETxIjJuZgdwCunghLJvpyPcVE3hXMyYp4FYmAQuxfSkBh4UpzB3cfHYPS6qg+0uJvcI/3WhKYWam8RAX8DlzLIUZ+pfQbhzHhgyxzMeUkFIvCllqFgcNxya+I9rEMcOURvdXQcelxMaUqhZ4g/vCgaViUkiXnZoxyXI6B9exGTtwRBDxEduxC1uF1FlLbgFjfpXL43iMG3jS83Vwea4b5BawJbpegfV9PsIs1JLczS1yXqhGX+Is1vXsEq4KJ6/TTW+WKlsH1Y5VQcdLaKKp0sx8EzLULNbgpvxvdy77pO8skGpsjWJV4/fRHl28lj7kDy+ltdiyldbiIFBai3/SSmsxprQWF2iltVhRWot/mdJaLBT+RX4CFqUhUb2gGVAAAAAASUVORK5CYII=;" vertex="1" parent="n.canary">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.metrics" value="&lt;b&gt;Thanos · ClickHouse&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1230" y="80" width="210" height="620" as="geometry" />
        </mxCell>
        <mxCell id="_ico7" 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.metrics">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m8" value="1. merge request · new rule /api/v2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1484;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1484;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.owner" target="n.repo">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="2. CI: CUE schema · invariants" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2129;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2129;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.repo" target="n.comp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="3. identity probe: two test users, same body?" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2774;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3161;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.comp" target="n.comp">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="710" y="250" />
              <mxPoint x="710" y="280" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m11" value="4. pass · bundle 4be1 signed" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3613;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3613;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.comp" target="n.repo">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="5. start rollout 4be1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4258;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4258;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.repo" target="n.ring">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="6. activate 4be1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4903;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4903;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ring" target="n.canary">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="7. applied in 9 s" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5548;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5548;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.canary" target="n.ring">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="8. 10 min: 5xx, hit ratio, stale ratio" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6194;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6194;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ring" target="n.metrics">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="9. hit ratio −6 points on /api/v2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6839;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6839;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.metrics" target="n.ring">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="10. regression &gt; 2 points → halt" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.7484;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7871;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.ring" target="n.ring">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="950" y="550" />
              <mxPoint x="950" y="570" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m18" value="11. revert to 3a07 · already on disk" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.8323;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8323;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ring" target="n.canary">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="12. halted · per-path evidence · key diff" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.8968;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8968;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ring" target="n.owner">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="A Configuration Change — Validated, Canaried, Halted, Reverted" 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="1410" 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="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Region and global rings repeat the canary steps. A revert changes a pointer; the previous bundle never left the PoP." 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="750" width="1410" 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="770" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Edge Platform   ·   date 2026-09" 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="780" width="1410" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
