<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="intake-system-architecture-08a0d58c" name="Intake — system architecture">
    <mxGraphModel dx="1600" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <object id="1" label="Intake — system architecture" schemaVersion="1" diagramId="intake-system-architecture-08a0d58c" canonicalAppearanceKey="tsx:src/app/(docs)/docs/modules/intake/page.tsx:intakeArchitectureChart#1" sourceSha256="08a0d58c95196f25a99720e1ef6c0c6e697d179154b06415942faa7a1332ca6a" metadataPayloadSha256="70781767ea9e8b27d99f3b0cc832bcfc8411a9f1e1f3997405255eca404ee1b0" generationKey="7930b79f5ff78f06805ad66856ec763b2f403dfd1d4c25e041c8cc424c276ebf" concepts="[&quot;Intake architecture&quot;,&quot;Sync execution&quot;,&quot;Normalization pipeline&quot;,&quot;External systems&quot;,&quot;REST surface — src/app/api/v1/connectors&quot;,&quot;Modules&quot;,&quot;Intake&quot;]" keywords="[&quot;Connector CRUD routes (API)&quot;,&quot;Sync trigger route (API)&quot;,&quot;store: queue&quot;,&quot;normalize.ts — binary and HTML to markdown (service)&quot;,&quot;store: table&quot;,&quot;enqueue extract + embed&quot;,&quot;Worker dispatcher — (service)&quot;,&quot;chunkMarkdown + persistChunks (service)&quot;,&quot;SharePoint / Microsoft Graph&quot;,&quot;withConnectorSourceLock — per-source advisory lock (service)&quot;,&quot;persistConnectorDocument — keyed upsert (service)&quot;,&quot;src/worker/index.ts&quot;,&quot;runConnectorSync / runConnectorPrune / runConnectorPermissions (service)&quot;,&quot;Confluence&quot;,&quot;Slack&quot;]" application="{&quot;name&quot;:&quot;eli-ai&quot;,&quot;version&quot;:&quot;0.1.0&quot;}" packages="{&quot;mermaid&quot;:&quot;11.16.0&quot;,&quot;mermaidCli&quot;:&quot;11.16.0&quot;,&quot;playwright&quot;:&quot;1.62.1&quot;,&quot;playwrightCore&quot;:&quot;1.62.1&quot;,&quot;puppeteer&quot;:&quot;25.6.0&quot;,&quot;puppeteerCore&quot;:&quot;25.6.0&quot;}" environment="{&quot;architecture&quot;:&quot;x64&quot;,&quot;containerImage&quot;:&quot;playwright:v1.62.1-noble@sha256:c091b21d9fae78c76e85cd4356431e9b018402f172a214fc7d7a5e9a7e29d8ac+node:26.3.1-bookworm-slim@sha256:209558c3e5e40e8adff68959d3c2ba7cd73723e716d89196878a0c362fa1e109&quot;,&quot;node&quot;:&quot;v26.3.1&quot;,&quot;platform&quot;:&quot;linux&quot;,&quot;yarn&quot;:&quot;4.17.1&quot;}" renderer="{&quot;browser&quot;:{&quot;executableSha256&quot;:&quot;0b20b130e7edd9dd51873be867761295fe0cfad490c2b9a64f95bd3cfc08fa71&quot;,&quot;name&quot;:&quot;chromium&quot;,&quot;revision&quot;:&quot;1234&quot;,&quot;version&quot;:&quot;151.0.7922.34&quot;},&quot;font&quot;:{&quot;family&quot;:&quot;Eli Diagram Inter Variable&quot;,&quot;fileSha256&quot;:&quot;3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62&quot;,&quot;licenseSha256&quot;:&quot;3b0a5fca3d17942cde889069889dedbbbd075e9b599968c82a95f4d944e9b345&quot;},&quot;mermaidConfigSha256&quot;:&quot;68c10966fe84406ee626034d58bfabd555df9f65f691204b7c46db24038da101&quot;,&quot;themeCssSha256&quot;:&quot;c80287a78d80ad63d27bd5ca348b2ef9a7e2f44da289e436be6484ea28a1b033&quot;}" adapterVersions="{&quot;diagramGenerator&quot;:&quot;2&quot;,&quot;drawioFlowchart&quot;:&quot;1&quot;,&quot;drawioGantt&quot;:&quot;1&quot;,&quot;drawioSequence&quot;:&quot;1&quot;,&quot;drawioState&quot;:&quot;1&quot;}" mermaidType="flowchart" direction="TB" generatedAt="2026-08-17T18:34:28.173Z" mermaidSource="flowchart TB&#10;  subgraph EDGE[&quot;REST surface — src/app/api/v1/connectors&quot;]&#10;    CRUD_ROUTES[&quot;Connector CRUD routes (API)&quot;]&#10;    SYNC_ROUTE[&quot;Sync trigger route (API)&quot;]&#10;  end&#10;&#10;  subgraph EXEC[&quot;Sync execution&quot;]&#10;    JOB_QUEUE[(&quot;pg-boss job queue (store: queue)&quot;)]&#10;    WORKER[&quot;Worker dispatcher — src/worker/index.ts (service)&quot;]&#10;    RUNNERS[&quot;runConnectorSync / runConnectorPrune / runConnectorPermissions (service)&quot;]&#10;    SOURCE_LOCK[&quot;withConnectorSourceLock — per-source advisory lock (service)&quot;]&#10;  end&#10;&#10;  subgraph PIPE[&quot;Normalization pipeline&quot;]&#10;    ADAPTERS[&quot;Source adapters — confluence · sharepoint · slack · markdown_upload (service)&quot;]&#10;    NORMALIZE[&quot;normalize.ts — binary and HTML to markdown (service)&quot;]&#10;    UPSERT[&quot;persistConnectorDocument — keyed upsert (service)&quot;]&#10;    CHUNKER[&quot;chunkMarkdown + persistChunks (service)&quot;]&#10;  end&#10;&#10;  subgraph REMOTE[&quot;External systems&quot;]&#10;    CONFLUENCE([&quot;Confluence&quot;])&#10;    SHAREPOINT([&quot;SharePoint / Microsoft Graph&quot;])&#10;    SLACK([&quot;Slack&quot;])&#10;  end&#10;&#10;  subgraph STORES[&quot;Data stores&quot;]&#10;    SOURCES_T[(&quot;connector_sources (store: table)&quot;)]&#10;    RUNS_T[(&quot;sync_runs (store: table)&quot;)]&#10;    DOCS_T[(&quot;documents (store: table)&quot;)]&#10;    CHUNKS_T[(&quot;chunks (store: table)&quot;)]&#10;    REVS_T[(&quot;document_revisions (store: table)&quot;)]&#10;    AUDIT_T[(&quot;audit_log (store: table)&quot;)]&#10;  end&#10;&#10;  CRUD_ROUTES --&gt; SOURCES_T&#10;  SYNC_ROUTE --&gt; JOB_QUEUE&#10;  JOB_QUEUE --&gt; WORKER&#10;  WORKER --&gt; RUNNERS&#10;  RUNNERS --&gt; SOURCE_LOCK&#10;  RUNNERS --&gt; ADAPTERS&#10;  CONFLUENCE --&gt; ADAPTERS&#10;  SHAREPOINT --&gt; ADAPTERS&#10;  SLACK --&gt; ADAPTERS&#10;  ADAPTERS --&gt; NORMALIZE&#10;  NORMALIZE --&gt; UPSERT&#10;  UPSERT --&gt; CHUNKER&#10;  UPSERT --&gt; DOCS_T&#10;  CHUNKER --&gt; CHUNKS_T&#10;  UPSERT --&gt; REVS_T&#10;  UPSERT --&gt; AUDIT_T&#10;  RUNNERS --&gt; SOURCES_T&#10;  RUNNERS --&gt; RUNS_T&#10;  UPSERT -.-&gt;|&quot;enqueue extract + embed&quot;| JOB_QUEUE">
          <mxCell parent="0"/>
        </object>
        <object id="c:STORES" label="Data stores" mermaidId="STORES" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="80" y="1417.334236" width="1794.707031" height="159.334236" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:REMOTE" label="External systems" mermaidId="REMOTE" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1156.947262" y="518.334236" width="574.725967" height="174" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:PIPE" label="Normalization pipeline" mermaidId="PIPE" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="972.335938" y="766.334236" width="859.101563" height="601" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:EXEC" label="Sync execution" mermaidId="EXEC" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="191" y="184" width="761.335938" height="756.334236" as="geometry"/>
          </mxCell>
        </object>
        <object id="c:EDGE" label="REST surface — src/app/api/v1/connectors" mermaidId="EDGE" mermaidShape="frame">
          <mxCell parent="1" vertex="1" style="collapsible=0;container=1;dashed=1;fillColor=none;fontColor=#333333;html=1;recursiveResize=0;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="8" y="8" width="809.011042" height="126" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CRUD_ROUTES" label="Connector CRUD routes (API)" mermaidId="CRUD_ROUTES" mermaidShape="rectangle">
          <mxCell parent="c:EDGE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="25" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SYNC_ROUTE" label="Sync trigger route (API)" mermaidId="SYNC_ROUTE" mermaidShape="rectangle">
          <mxCell parent="c:EDGE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="539.948542" y="37" width="234.0625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:JOB_QUEUE" label="pg-boss job queue (store: queue)" mermaidId="JOB_QUEUE" mermaidShape="cylinder">
          <mxCell parent="c:EXEC" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="366.979792" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:WORKER" label="Worker dispatcher — src/worker/index.ts (service)" mermaidId="WORKER" mermaidShape="rectangle">
          <mxCell parent="c:EXEC" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="301.792969" y="184.334236" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RUNNERS" label="runConnectorSync / runConnectorPrune / runConnectorPermissions (service)" mermaidId="RUNNERS" mermaidShape="rectangle">
          <mxCell parent="c:EXEC" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="301.332031" y="359.334236" width="256.921875" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SOURCE_LOCK" label="withConnectorSourceLock — per-source advisory lock (service)" mermaidId="SOURCE_LOCK" mermaidShape="rectangle">
          <mxCell parent="c:EXEC" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="619.334236" width="261.625" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:ADAPTERS" label="Source adapters — confluence · sharepoint · slack · markdown_upload (service)" mermaidId="ADAPTERS" mermaidShape="rectangle">
          <mxCell parent="c:PIPE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="196.957031" y="25" width="256" height="124" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:NORMALIZE" label="normalize.ts — binary and HTML to markdown (service)" mermaidId="NORMALIZE" mermaidShape="rectangle">
          <mxCell parent="c:PIPE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="196.957031" y="224" width="256" height="100" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:UPSERT" label="persistConnectorDocument — keyed upsert (service)" mermaidId="UPSERT" mermaidShape="rectangle">
          <mxCell parent="c:PIPE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="271.941406" y="374" width="269.03125" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CHUNKER" label="chunkMarkdown + persistChunks (service)" mermaidId="CHUNKER" mermaidShape="rectangle">
          <mxCell parent="c:PIPE" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="146.132813" y="500" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CONFLUENCE" label="Confluence" mermaidId="CONFLUENCE" mermaidShape="stadium">
          <mxCell parent="c:REMOTE" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="35" y="68" width="110.730476" height="38" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SHAREPOINT" label="SharePoint / Microsoft Graph" mermaidId="SHAREPOINT" mermaidShape="stadium">
          <mxCell parent="c:REMOTE" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="195.730474" y="56" width="229.468145" height="62" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SLACK" label="Slack" mermaidId="SLACK" mermaidShape="stadium">
          <mxCell parent="c:REMOTE" vertex="1" style="arcSize=50;fillColor=#ECECFF;fontColor=#333333;html=1;rounded=1;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="475.198616" y="68" width="64.527351" height="38" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:SOURCES_T" label="connector_sources (store: table)" mermaidId="SOURCES_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="124.167969" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:RUNS_T" label="sync_runs (store: table)" mermaidId="RUNS_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="496.105469" y="37.960747" width="191.859375" height="83.412742" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:DOCS_T" label="documents (store: table)" mermaidId="DOCS_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="832.875" y="37.6382" width="198.921875" height="84.057836" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:CHUNKS_T" label="chunks (store: table)" mermaidId="CHUNKS_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1081.796875" y="39.092376" width="169.34375" height="81.149485" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:REVS_T" label="document_revisions (store: table)" mermaidId="REVS_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1312.628906" y="24.994552" width="214" height="109.345133" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:AUDIT_T" label="audit_log (store: table)" mermaidId="AUDIT_T" mermaidShape="cylinder">
          <mxCell parent="c:STORES" vertex="1" style="backgroundOutline=1;boundedLbl=1;fillColor=#ECECFF;fontColor=#333333;html=1;shape=cylinder3;size=15;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="1576.628906" y="38.382415" width="183.078125" height="82.569407" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_CRUD_ROUTES_SOURCES_T_0" label="" mermaidId="L_CRUD_ROUTES_SOURCES_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CRUD_ROUTES" target="n:SOURCES_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="171" y="109" as="sourcePoint"/>
              <mxPoint x="214.985515" y="1451.201176" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="171" y="134"/>
                <mxPoint x="171" y="159"/>
                <mxPoint x="171" y="184"/>
                <mxPoint x="171" y="263.667118"/>
                <mxPoint x="171" y="343.334236"/>
                <mxPoint x="171" y="418.334236"/>
                <mxPoint x="171" y="493.334236"/>
                <mxPoint x="171" y="518.334236"/>
                <mxPoint x="171" y="605.334236"/>
                <mxPoint x="171" y="692.334236"/>
                <mxPoint x="171" y="729.334236"/>
                <mxPoint x="171" y="766.334236"/>
                <mxPoint x="171" y="853.334236"/>
                <mxPoint x="171" y="940.334236"/>
                <mxPoint x="171" y="965.334236"/>
                <mxPoint x="171" y="1040.334236"/>
                <mxPoint x="171" y="1115.334236"/>
                <mxPoint x="171" y="1178.334236"/>
                <mxPoint x="171" y="1241.334236"/>
                <mxPoint x="171" y="1304.334236"/>
                <mxPoint x="171" y="1367.334236"/>
                <mxPoint x="171" y="1392.334236"/>
                <mxPoint x="171" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SYNC_ROUTE_JOB_QUEUE_0" label="" mermaidId="L_SYNC_ROUTE_JOB_QUEUE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SYNC_ROUTE" target="n:JOB_QUEUE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="664.979792" y="97" as="sourcePoint"/>
              <mxPoint x="664.979792" y="209" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="664.979792" y="134"/>
                <mxPoint x="664.979792" y="159"/>
                <mxPoint x="664.979792" y="184"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_JOB_QUEUE_WORKER_0" label="" mermaidId="L_JOB_QUEUE_WORKER_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:JOB_QUEUE" target="n:WORKER" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="634.659048" y="317.687348" as="sourcePoint"/>
              <mxPoint x="620.792969" y="368.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="620.792969" y="343.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_WORKER_RUNNERS_0" label="" mermaidId="L_WORKER_RUNNERS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:WORKER" target="n:RUNNERS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="620.792969" y="468.334236" as="sourcePoint"/>
              <mxPoint x="620.792969" y="543.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="620.792969" y="493.334236"/>
                <mxPoint x="620.792969" y="518.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNERS_SOURCE_LOCK_0" label="" mermaidId="L_RUNNERS_SOURCE_LOCK_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNERS" target="n:SOURCE_LOCK" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="492.332031" y="647.671086" as="sourcePoint"/>
              <mxPoint x="356.8125" y="803.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="356.8125" y="692.334236"/>
                <mxPoint x="356.8125" y="729.334236"/>
                <mxPoint x="356.8125" y="766.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNERS_ADAPTERS_0" label="" mermaidId="L_RUNNERS_ADAPTERS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNERS" target="n:ADAPTERS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="749.253906" y="641.464483" as="sourcePoint"/>
              <mxPoint x="1169.292969" y="823.005116" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="930.121094" y="692.334236"/>
                <mxPoint x="930.121094" y="729.334236"/>
                <mxPoint x="930.121094" y="766.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CONFLUENCE_ADAPTERS_0" label="" mermaidId="L_CONFLUENCE_ADAPTERS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CONFLUENCE" target="n:ADAPTERS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1247.8125" y="624.834236" as="sourcePoint"/>
              <mxPoint x="1261.674704" y="791.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1247.3125" y="692.334236"/>
                <mxPoint x="1247.3125" y="729.334236"/>
                <mxPoint x="1247.3125" y="766.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SHAREPOINT_ADAPTERS_0" label="" mermaidId="L_SHAREPOINT_ADAPTERS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SHAREPOINT" target="n:ADAPTERS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1467.911808" y="636.834236" as="sourcePoint"/>
              <mxPoint x="1418.527084" y="791.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1467.411808" y="692.334236"/>
                <mxPoint x="1467.411808" y="729.334236"/>
                <mxPoint x="1467.411808" y="766.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_SLACK_ADAPTERS_0" label="" mermaidId="L_SLACK_ADAPTERS_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SLACK" target="n:ADAPTERS" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1664.909554" y="624.834236" as="sourcePoint"/>
              <mxPoint x="1425.292969" y="823.000548" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1664.409554" y="692.334236"/>
                <mxPoint x="1664.409554" y="729.334236"/>
                <mxPoint x="1664.409554" y="766.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_ADAPTERS_NORMALIZE_0" label="" mermaidId="L_ADAPTERS_NORMALIZE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:ADAPTERS" target="n:NORMALIZE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1297.292969" y="915.334236" as="sourcePoint"/>
              <mxPoint x="1297.292969" y="990.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1297.292969" y="940.334236"/>
                <mxPoint x="1297.292969" y="965.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_NORMALIZE_UPSERT_0" label="" mermaidId="L_NORMALIZE_UPSERT_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:NORMALIZE" target="n:UPSERT" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1297.292969" y="1090.334236" as="sourcePoint"/>
              <mxPoint x="1329.634239" y="1140.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1297.292969" y="1115.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_UPSERT_CHUNKER_0" label="" mermaidId="L_UPSERT_CHUNKER_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:UPSERT" target="n:CHUNKER" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1298.978361" y="1216.334236" as="sourcePoint"/>
              <mxPoint x="1246.46875" y="1266.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1246.46875" y="1241.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_UPSERT_DOCS_T_0" label="" mermaidId="L_UPSERT_DOCS_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:UPSERT" target="n:DOCS_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1244.277344" y="1201.459688" as="sourcePoint"/>
              <mxPoint x="1012.335938" y="1454.977737" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1012.335938" y="1241.334236"/>
                <mxPoint x="1012.335938" y="1304.334236"/>
                <mxPoint x="1012.335938" y="1367.334236"/>
                <mxPoint x="1012.335938" y="1392.334236"/>
                <mxPoint x="1012.335938" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_CHUNKER_CHUNKS_T_0" label="" mermaidId="L_CHUNKER_CHUNKS_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:CHUNKER" target="n:CHUNKS_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1246.46875" y="1342.334236" as="sourcePoint"/>
              <mxPoint x="1246.46875" y="1456.426613" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1246.46875" y="1367.334236"/>
                <mxPoint x="1246.46875" y="1392.334236"/>
                <mxPoint x="1246.46875" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_UPSERT_REVS_T_0" label="" mermaidId="L_UPSERT_REVS_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:UPSERT" target="n:REVS_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1451.678137" y="1216.334236" as="sourcePoint"/>
              <mxPoint x="1499.628906" y="1442.334236" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1499.628906" y="1241.334236"/>
                <mxPoint x="1499.628906" y="1304.334236"/>
                <mxPoint x="1499.628906" y="1367.334236"/>
                <mxPoint x="1499.628906" y="1392.334236"/>
                <mxPoint x="1499.628906" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_UPSERT_AUDIT_T_0" label="" mermaidId="L_UPSERT_AUDIT_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:UPSERT" target="n:AUDIT_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1513.308594" y="1201.277003" as="sourcePoint"/>
              <mxPoint x="1748.167969" y="1455.716652" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1748.167969" y="1241.334236"/>
                <mxPoint x="1748.167969" y="1304.334236"/>
                <mxPoint x="1748.167969" y="1367.334236"/>
                <mxPoint x="1748.167969" y="1392.334236"/>
                <mxPoint x="1748.167969" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNERS_SOURCES_T_0" label="" mermaidId="L_RUNNERS_SOURCES_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNERS" target="n:SOURCES_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="550.834186" y="667.334236" as="sourcePoint"/>
              <mxPoint x="418.167969" y="1472.47047" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="522.625" y="692.334236"/>
                <mxPoint x="522.625" y="729.334236"/>
                <mxPoint x="522.625" y="766.334236"/>
                <mxPoint x="522.625" y="853.334236"/>
                <mxPoint x="522.625" y="940.334236"/>
                <mxPoint x="522.625" y="965.334236"/>
                <mxPoint x="522.625" y="1040.334236"/>
                <mxPoint x="522.625" y="1115.334236"/>
                <mxPoint x="522.625" y="1178.334236"/>
                <mxPoint x="522.625" y="1241.334236"/>
                <mxPoint x="522.625" y="1304.334236"/>
                <mxPoint x="522.625" y="1367.334236"/>
                <mxPoint x="522.625" y="1392.334236"/>
                <mxPoint x="522.625" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_RUNNERS_RUNS_T_0" label="" mermaidId="L_RUNNERS_RUNS_T_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:RUNNERS" target="n:RUNS_T" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="657.31039" y="667.334236" as="sourcePoint"/>
              <mxPoint x="672.035156" y="1455.294983" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="672.035156" y="692.334236"/>
                <mxPoint x="672.035156" y="729.334236"/>
                <mxPoint x="672.035156" y="766.334236"/>
                <mxPoint x="672.035156" y="853.334236"/>
                <mxPoint x="672.035156" y="940.334236"/>
                <mxPoint x="672.035156" y="965.334236"/>
                <mxPoint x="672.035156" y="1040.334236"/>
                <mxPoint x="672.035156" y="1115.334236"/>
                <mxPoint x="672.035156" y="1178.334236"/>
                <mxPoint x="672.035156" y="1241.334236"/>
                <mxPoint x="672.035156" y="1304.334236"/>
                <mxPoint x="672.035156" y="1367.334236"/>
                <mxPoint x="672.035156" y="1392.334236"/>
                <mxPoint x="672.035156" y="1417.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_UPSERT_JOB_QUEUE_0" label="enqueue extract + embed" mermaidId="L_UPSERT_JOB_QUEUE_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:UPSERT" target="n:JOB_QUEUE" edge="1" style="edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;html=1;jettySize=auto;orthogonalLoop=1;rounded=0;strokeColor=#333333;">
            <mxGeometry relative="1" as="geometry">
              <mxPoint x="1513.308594" y="1154.654999" as="sourcePoint"/>
              <mxPoint x="766.242156" y="307.651023" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="1736.679688" y="1115.334236"/>
                <mxPoint x="1736.679688" y="1040.334236"/>
                <mxPoint x="1736.679688" y="965.334236"/>
                <mxPoint x="812.550781" y="940.334236"/>
                <mxPoint x="812.550781" y="853.334236"/>
                <mxPoint x="812.550781" y="766.334236"/>
                <mxPoint x="812.550781" y="729.334236"/>
                <mxPoint x="812.550781" y="692.334236"/>
                <mxPoint x="812.550781" y="605.334236"/>
                <mxPoint x="812.550781" y="518.334236"/>
                <mxPoint x="812.550781" y="493.334236"/>
                <mxPoint x="812.550781" y="418.334236"/>
                <mxPoint x="812.550781" y="343.334236"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
