<mxfile host="app.diagrams.net" modified="2023-11-30T10:08:27.595Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" etag="v3GlY4p_EPaZfdVGUvyi" version="22.1.5" type="github">
  <diagram name="Page-1" id="RLboldwgPuiFbGZkpBUd">
    <mxGraphModel dx="989" dy="1708" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="FRRhlY5aaI8bM1flUCIx-3" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;strokeColor=#3399FF;" parent="1" vertex="1">
          <mxGeometry x="460" y="-951" width="300" height="233" as="geometry" />
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-1" value="API Gateway&lt;br&gt;192.168.1.100" style="sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.reverse_proxy;" parent="1" vertex="1">
          <mxGeometry x="266.00000000000006" y="-830.3999999999999" width="41" height="53" as="geometry" />
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-2" value="Backend&lt;br&gt;edm.xxx/api" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.android;fillColor=#FF6830;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="628.7" y="-845.8999999999999" width="73.5" height="84" as="geometry" />
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-3" value="Frontend&lt;br&gt;edm.xxx" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.android;fillColor=#8CC64F;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="492.6" y="-940.4" width="73.5" height="84" as="geometry" />
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-6" value="User" style="dashed=0;outlineConnect=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.weblogos.chrome;fillColor=#FF6830;" parent="1" vertex="1">
          <mxGeometry x="8.899999999999999" y="-1095" width="44.8" height="45.4" as="geometry" />
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-9" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="qrBoiBcnWzxhBA2JE3Tb-1" target="qrBoiBcnWzxhBA2JE3Tb-2" edge="1">
          <mxGeometry x="0.0795" y="19" width="50" height="50" relative="1" as="geometry">
            <mxPoint x="386.1" y="-670.4" as="sourcePoint" />
            <mxPoint x="436.1" y="-720.4" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-12" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="qrBoiBcnWzxhBA2JE3Tb-3" target="qrBoiBcnWzxhBA2JE3Tb-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="376.1" y="-780.4" as="sourcePoint" />
            <mxPoint x="426.1" y="-830.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="qrBoiBcnWzxhBA2JE3Tb-14" value="Firewall" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry x="0.9524" width="50" height="50" relative="1" as="geometry">
            <mxPoint x="68.9" y="-720" as="sourcePoint" />
            <mxPoint x="68.9" y="-1140" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-1" value="NAS Reverse proxy&lt;br&gt;192.168.1.5" style="sketch=0;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=none;fillColor=#505050;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.servers.reverse_proxy;" parent="1" vertex="1">
          <mxGeometry x="106.6" y="-830.3999999999999" width="41" height="53" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-2" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-1" target="qrBoiBcnWzxhBA2JE3Tb-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="346.1" y="-830.4" as="sourcePoint" />
            <mxPoint x="396.1" y="-880.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-3" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="qrBoiBcnWzxhBA2JE3Tb-6" target="0NdD80OInc1QJW_aUxTs-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="37.743647166362145" y="-999.9999999999999" as="sourcePoint" />
            <mxPoint x="345" y="-880.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-4" value="Elasticsearch&lt;br&gt;0.0.0.0:9200" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.elasticsearch_service;" parent="1" vertex="1">
          <mxGeometry x="382.1" y="-782" width="50" height="50" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-5" value="MiniO&lt;br&gt;edm-s3.xxx" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#7AA116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="-1095" width="50" height="50" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-6" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="qrBoiBcnWzxhBA2JE3Tb-1" target="0NdD80OInc1QJW_aUxTs-5" edge="1">
          <mxGeometry x="0.1582" y="8" width="50" height="50" relative="1" as="geometry">
            <mxPoint x="266.6" y="-831.4" as="sourcePoint" />
            <mxPoint x="282.66928406466525" y="-995.4" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-7" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-4" target="qrBoiBcnWzxhBA2JE3Tb-2" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="296.1" y="-760.4" as="sourcePoint" />
            <mxPoint x="346.1" y="-810.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-8" value="RabbitMQ&lt;br&gt;edm-mq.frappet.synology.me" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.queue;fillColor=#D9A741;gradientColor=none;" parent="1" vertex="1">
          <mxGeometry x="626.1" y="-1093" width="73.5" height="48" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-9" value="bucket notificatoin&lt;br&gt;to RabbitMQ" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-5" target="0NdD80OInc1QJW_aUxTs-8" edge="1">
          <mxGeometry x="0.0031" y="19" width="50" height="50" relative="1" as="geometry">
            <mxPoint x="300" y="-810" as="sourcePoint" />
            <mxPoint x="350" y="-860" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-10" value="consume" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-8" target="qrBoiBcnWzxhBA2JE3Tb-2" edge="1">
          <mxGeometry x="0.8086" width="50" height="50" relative="1" as="geometry">
            <mxPoint x="665.4499999999999" y="-997.4" as="sourcePoint" />
            <mxPoint x="346.1" y="-810.4" as="targetPoint" />
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-12" value="Test/Development Infrastructure" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;" parent="1" vertex="1">
          <mxGeometry x="440" y="-1160" width="360" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-14" value="upload/download&lt;br&gt;presigned URL" style="endArrow=classic;startArrow=classic;html=1;rounded=0;dashed=1;dashPattern=1 2;" parent="1" source="qrBoiBcnWzxhBA2JE3Tb-6" target="0NdD80OInc1QJW_aUxTs-5" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="280" y="-780" as="sourcePoint" />
            <mxPoint x="330" y="-830" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-15" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="240" y="1160" as="sourcePoint" />
            <mxPoint x="240" y="10" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-16" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="1160" as="sourcePoint" />
            <mxPoint x="390" y="10" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-17" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="540" y="1165" as="sourcePoint" />
            <mxPoint x="540" y="5" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-18" value="Save file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="110" y="245" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-19" value="Web App" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="134" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-20" value="Receive file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="400" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-22" value="S3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="432.1" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-23" value="API" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="295" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-24" value="Generate Presigned URL" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="320" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-25" value="Upload&lt;br&gt;(Web App or MiniO)" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="110" y="400" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-28" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="FRRhlY5aaI8bM1flUCIx-15" target="0NdD80OInc1QJW_aUxTs-24" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="217.1" y="540" as="sourcePoint" />
            <mxPoint x="417.1" y="340" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-30" value="Elasticsearch" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="587.6" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-31" value="Index document" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="560.1000000000001" y="91" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-32" value="Update Index&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="560.1" y="620" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-33" value="Consume event and process" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="550" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-35" value="upload file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="109" y="91" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-36" value="Receive file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="130" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-37" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-35" target="0NdD80OInc1QJW_aUxTs-38" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="239.99999999999997" y="301" as="sourcePoint" />
            <mxPoint x="290" y="121" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-38" value="Process file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="257.6" y="91" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-39" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-38" target="0NdD80OInc1QJW_aUxTs-31" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="350" y="261" as="sourcePoint" />
            <mxPoint x="400" y="211" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-41" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-38" target="0NdD80OInc1QJW_aUxTs-36" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="350" y="261" as="sourcePoint" />
            <mxPoint x="400" y="211" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-42" value="Trigger event" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="407.1" y="480" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-43" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-24" target="0NdD80OInc1QJW_aUxTs-25" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="350" y="390" as="sourcePoint" />
            <mxPoint x="400" y="340" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-44" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-20" target="0NdD80OInc1QJW_aUxTs-42" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="350" y="470" as="sourcePoint" />
            <mxPoint x="400" y="420" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-45" value="RabbitMQ" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="720" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-46" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="690" y="1160" as="sourcePoint" />
            <mxPoint x="690" y="10" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-47" value="Receive event and place in queue" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="706.1" y="480" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-48" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-42" target="0NdD80OInc1QJW_aUxTs-47" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="350" y="390" as="sourcePoint" />
            <mxPoint x="400" y="340" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-49" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-47" target="0NdD80OInc1QJW_aUxTs-33" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367.1" y="470" as="sourcePoint" />
            <mxPoint x="417.1" y="420" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-50" value="Send file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="570" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-51" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-33" target="0NdD80OInc1QJW_aUxTs-50" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367.1" y="550" as="sourcePoint" />
            <mxPoint x="417.1" y="500" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-52" value="Receive and process index" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="620" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-53" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-50" target="0NdD80OInc1QJW_aUxTs-52" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367.1" y="640" as="sourcePoint" />
            <mxPoint x="457.1" y="790" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-54" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-52" target="0NdD80OInc1QJW_aUxTs-32" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="367.1" y="550" as="sourcePoint" />
            <mxPoint x="417.1" y="500" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-55" value="Simple API" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="17.400000000000013" y="106" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-56" value="Method" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="17.400000000000006" y="50" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-57" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="90" y="1160" as="sourcePoint" />
            <mxPoint x="90" y="10" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="0NdD80OInc1QJW_aUxTs-58" value="Presign url and MQ" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="10.000000000000012" y="260" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-1" value="ชั้นตอนการ ทำ index" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;" parent="1" vertex="1">
          <mxGeometry y="-30" width="209" height="50" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-2" value="ชั้นตอนการค้นเอกสาร" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;" parent="1" vertex="1">
          <mxGeometry x="12" y="700" width="209" height="50" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-3" value="Perform Search&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="110" y="800" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-4" value="Do search" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="560.1" y="800" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-5" value="Process Search Request" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="800" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-6" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-3" target="rrX8tykk8wqi368OXHtx-5" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="700" as="sourcePoint" />
            <mxPoint x="440" y="650" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-7" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-5" target="rrX8tykk8wqi368OXHtx-4" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="700" as="sourcePoint" />
            <mxPoint x="440" y="650" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-8" value="Process Search Result" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="870" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-9" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-4" target="rrX8tykk8wqi368OXHtx-8" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="406.6666666666665" y="850" as="sourcePoint" />
            <mxPoint x="440" y="640" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-10" value="Display Result" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="111" y="870" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-11" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-8" target="rrX8tykk8wqi368OXHtx-10" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="690" as="sourcePoint" />
            <mxPoint x="440" y="640" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-12" value="Choose file for Download" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="111" y="950" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-13" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-10" target="rrX8tykk8wqi368OXHtx-12" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="1090" as="sourcePoint" />
            <mxPoint x="440" y="1040" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-14" value="Generate Presigned URL" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="1029" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-15" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-12" target="FRRhlY5aaI8bM1flUCIx-22" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="1050" as="sourcePoint" />
            <mxPoint x="440" y="1000" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-16" value="Download file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="110" y="1029" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-17" value="Send file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="410" y="1100" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-18" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-16" target="rrX8tykk8wqi368OXHtx-17" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="950" as="sourcePoint" />
            <mxPoint x="440" y="900" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-19" value="Get file" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="110" y="1100" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-20" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-17" target="rrX8tykk8wqi368OXHtx-19" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="880" as="sourcePoint" />
            <mxPoint x="440" y="830" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-21" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="rrX8tykk8wqi368OXHtx-14" target="rrX8tykk8wqi368OXHtx-16" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="880" as="sourcePoint" />
            <mxPoint x="440" y="830" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-22" value="Web App" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="135" y="760" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-23" value="S3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="442.1" y="760" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-24" value="API" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="282.6" y="760" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-25" value="Elasticsearch" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="572.6" y="760" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rrX8tykk8wqi368OXHtx-26" value="RabbitMQ" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="702.6" y="760" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-2" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" parent="1" source="FRRhlY5aaI8bM1flUCIx-4" target="0NdD80OInc1QJW_aUxTs-1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="145" y="-940.4" as="sourcePoint" />
            <mxPoint x="385" y="-840.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-4" value="keycloak&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;edm-id.xxx&lt;/span&gt;" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.traditional_server;fillColor=#0050ef;strokeColor=none;fontColor=#000000;" parent="1" vertex="1">
          <mxGeometry x="209.00000000000003" y="-785" width="30" height="50" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-5" value="EDM App" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontColor=#007FFF;" parent="1" vertex="1">
          <mxGeometry x="656.1" y="-950" width="106.5" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-6" value="Web App" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="134" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-7" value="S3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="439.5" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-8" value="API" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="280" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-9" value="Elasticsearch" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="566.1" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-10" value="RabbitMQ" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="713.5" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-11" value="Method" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
          <mxGeometry x="17.400000000000006" y="210" width="60" height="30" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-12" value="create index" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="560.1" y="245" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-13" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-18" target="FRRhlY5aaI8bM1flUCIx-18" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="510" y="400" as="sourcePoint" />
            <mxPoint x="560" y="350" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-15" value="Upload request" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="310" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-18" value="process metadata" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="245" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-19" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="FRRhlY5aaI8bM1flUCIx-18" target="FRRhlY5aaI8bM1flUCIx-12" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="510" y="320" as="sourcePoint" />
            <mxPoint x="560" y="270" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-20" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="FRRhlY5aaI8bM1flUCIx-12" target="FRRhlY5aaI8bM1flUCIx-15" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="510" y="320" as="sourcePoint" />
            <mxPoint x="560" y="270" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-21" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="0NdD80OInc1QJW_aUxTs-25" target="0NdD80OInc1QJW_aUxTs-20" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="510" y="400" as="sourcePoint" />
            <mxPoint x="560" y="350" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-22" value="Download request" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="261.5" y="950" width="110" height="60" as="geometry" />
        </mxCell>
        <mxCell id="FRRhlY5aaI8bM1flUCIx-23" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" source="FRRhlY5aaI8bM1flUCIx-22" target="rrX8tykk8wqi368OXHtx-14" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="510" y="790" as="sourcePoint" />
            <mxPoint x="560" y="740" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="4VZvFf1o7i4CYKnafUk3-1" value="Other App" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.android;fillColor=#ff0d00;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="499.5" y="-1064" width="73.5" height="84" as="geometry" />
        </mxCell>
        <mxCell id="4VZvFf1o7i4CYKnafUk3-2" value="&lt;span style=&quot;&quot;&gt;&lt;br&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;direct import document&lt;/span&gt;&lt;br&gt;&lt;/span&gt;" style="endArrow=classic;html=1;rounded=0;labelBackgroundColor=none;" edge="1" parent="1" source="4VZvFf1o7i4CYKnafUk3-1" target="0NdD80OInc1QJW_aUxTs-5">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="390" y="-740" as="sourcePoint" />
            <mxPoint x="440" y="-790" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="4VZvFf1o7i4CYKnafUk3-5" value="Import &lt;br&gt;via API" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="4VZvFf1o7i4CYKnafUk3-1" target="qrBoiBcnWzxhBA2JE3Tb-2">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="565.5262611275965" y="-930.4" as="sourcePoint" />
            <mxPoint x="236.1" y="-920.4" as="targetPoint" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
