<mxfile host="app.diagrams.net" type="device">
  <diagram id="03-ingestion" name="Publish a complete version">
    <mxGraphModel grid="1" gridSize="10" page="0" background="#f8fafc">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="accept" value="&lt;b&gt;Accept version&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:16px&quot; color=&quot;#42536a&quot;&gt;Stable source + revision ID&lt;/font&gt;" style="rounded=1;arcSize=50;whiteSpace=wrap;html=1;fillColor=#e6f3ff;strokeColor=#287cb5;strokeWidth=1.7;fontColor=#15263a;fontSize=19;fontFamily=Helvetica;spacing=12;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="25" y="50" width="220" height="95" />
        </mxCell>
        <mxCell id="stage" value="&lt;b&gt;Stage derived data&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:16px&quot; color=&quot;#42536a&quot;&gt;Parse · chunk · embed&lt;/font&gt;" style="rounded=1;arcSize=12;whiteSpace=wrap;html=1;fillColor=#e6f3ff;strokeColor=#287cb5;strokeWidth=1.7;fontColor=#15263a;fontSize=19;fontFamily=Helvetica;spacing=12;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="300" y="50" width="270" height="95" />
        </mxCell>
        <mxCell id="check" value="&lt;b&gt;Check build&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:16px&quot; color=&quot;#42536a&quot;&gt;All artifacts ready?&lt;/font&gt;" style="shape=rhombus;perimeter=rhombusPerimeter;whiteSpace=wrap;html=1;fillColor=#efedff;strokeColor=#7463c4;strokeWidth=1.7;fontColor=#15263a;fontSize=19;fontFamily=Helvetica;spacing=12;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="320" y="220" width="230" height="170" />
        </mxCell>
        <mxCell id="publish" value="&lt;b&gt;Publish version&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:16px&quot; color=&quot;#42536a&quot;&gt;Atomically switch active pointer&lt;/font&gt;" style="rounded=1;arcSize=12;whiteSpace=wrap;html=1;fillColor=#e2f5ed;strokeColor=#278162;strokeWidth=1.7;fontColor=#15263a;fontSize=19;fontFamily=Helvetica;spacing=12;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="645" y="255" width="275" height="100" />
        </mxCell>
        <mxCell id="retry" value="&lt;b&gt;Record failure + retry&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:16px&quot; color=&quot;#42536a&quot;&gt;Keep the current version active&lt;/font&gt;" style="rounded=1;arcSize=12;whiteSpace=wrap;html=1;fillColor=#fff2df;strokeColor=#ad741b;strokeWidth=1.7;fontColor=#15263a;fontSize=19;fontFamily=Helvetica;spacing=12;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry as="geometry" x="25" y="255" width="235" height="100" />
        </mxCell>
        <mxCell id="edge-0" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;jettySize=20;html=1;strokeColor=#586d86;strokeWidth=2;endArrow=block;endFill=1;fontColor=#15263a;fontSize=16;fontFamily=Helvetica;labelBackgroundColor=#f8fafc;" edge="1" parent="1" source="accept" target="stage">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="edge-1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;jettySize=20;html=1;strokeColor=#586d86;strokeWidth=2;endArrow=block;endFill=1;fontColor=#15263a;fontSize=16;fontFamily=Helvetica;labelBackgroundColor=#f8fafc;" edge="1" parent="1" source="stage" target="check">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="edge-2" value="pass" style="edgeStyle=orthogonalEdgeStyle;rounded=1;jettySize=20;html=1;strokeColor=#586d86;strokeWidth=2;endArrow=block;endFill=1;fontColor=#15263a;fontSize=16;fontFamily=Helvetica;labelBackgroundColor=#f8fafc;" edge="1" parent="1" source="check" target="publish">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="edge-3" value="fail" style="edgeStyle=orthogonalEdgeStyle;rounded=1;jettySize=20;html=1;strokeColor=#586d86;strokeWidth=2;endArrow=block;endFill=1;fontColor=#15263a;fontSize=16;fontFamily=Helvetica;labelBackgroundColor=#f8fafc;" edge="1" parent="1" source="check" target="retry">
          <mxGeometry as="geometry" relative="1" />
        </mxCell>
        <mxCell id="edge-4" value="retry" style="edgeStyle=orthogonalEdgeStyle;rounded=1;jettySize=20;html=1;strokeColor=#586d86;strokeWidth=2;endArrow=block;endFill=1;fontColor=#15263a;fontSize=16;fontFamily=Helvetica;labelBackgroundColor=#f8fafc;exitX=0.5;exitY=0;entryX=0;entryY=0.5;" edge="1" parent="1" source="retry" target="stage">
          <mxGeometry as="geometry" relative="1">
            <mxPoint as="offset" x="0" y="-15" />
            <Array as="points">
              <mxPoint x="142" y="195" />
              <mxPoint x="280" y="195" />
              <mxPoint x="280" y="97" />
            </Array>
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>