<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="eli.ai" agent="eli.ai diagram exporter" version="1">
  <diagram id="asynchronous-document-lifecycle-1d1676a4" name="Asynchronous document lifecycle">
    <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="Asynchronous document lifecycle" schemaVersion="1" diagramId="asynchronous-document-lifecycle-1d1676a4" canonicalAppearanceKey="md:docs/architecture/modular-third-party-sdk.md#4" sourceSha256="1d1676a45dba652a3154683883c269678e331c52276d43aab58c6d573eafc5c5" metadataPayloadSha256="af849362946abd6ccb089a78d296ce34320842208d79a9cdceb5d68d54a22be6" generationKey="5fad7b6213970ef12ba484f0b3cdf3bb68e62e8d6399b7de7d4dd44941c56aa1" concepts="[&quot;Modular third party SDK&quot;,&quot;Asynchronous document lifecycle&quot;]" keywords="[&quot;commit document&quot;,&quot;storage payload&quot;,&quot;LLM extraction&quot;,&quot;wikilinks · entities · relations&quot;,&quot;documents.create/update&quot;,&quot;chunks/FTS&quot;,&quot;201/200&quot;,&quot;detached/queued&quot;,&quot;enrichment&quot;,&quot;embeddings&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="LR" generatedAt="2026-08-12T23:36:48.799Z" mermaidSource="flowchart LR&#10;  SDK[&quot;documents.create/update&quot;]&#10;  Save[&quot;commit document + chunks/FTS&quot;]&#10;  Response[&quot;201/200 storage payload&quot;]&#10;  Async[&quot;detached/queued enrichment&quot;]&#10;  Graph[&quot;wikilinks · entities · relations&quot;]&#10;  Vector[&quot;embeddings&quot;]&#10;  Extract[&quot;LLM extraction&quot;]&#10;&#10;  SDK --&gt; Save --&gt; Response&#10;  Save -.-&gt; Async&#10;  Async --&gt; Graph&#10;  Async --&gt; Vector&#10;  Async --&gt; Extract">
          <mxCell parent="0"/>
        </object>
        <object id="n:SDK" label="documents.create/update" mermaidId="SDK" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="8" y="77" width="250.90625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Save" label="commit document + chunks/FTS" mermaidId="Save" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="308.90625" y="65" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Response" label="201/200 storage payload" mermaidId="Response" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="620.648438" y="20" width="244.515625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Async" label="detached/queued enrichment" mermaidId="Async" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="614.90625" y="122" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Graph" label="wikilinks · entities · relations" mermaidId="Graph" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="920.90625" y="8" width="256" height="76" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Vector" label="embeddings" mermaidId="Vector" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="974.078125" y="134" width="149.65625" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="n:Extract" label="LLM extraction" mermaidId="Extract" mermaidShape="rectangle">
          <mxCell parent="1" vertex="1" style="fillColor=#ECECFF;fontColor=#333333;html=1;rounded=0;strokeColor=#9370DB;whiteSpace=wrap;">
            <mxGeometry x="964.601563" y="236" width="168.609375" height="52" as="geometry"/>
          </mxCell>
        </object>
        <object id="e:L_SDK_Save_0" label="" mermaidId="L_SDK_Save_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:SDK" target="n:Save" 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="258.90625" y="103" as="sourcePoint"/>
              <mxPoint x="308.90625" y="103" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="283.90625" y="103"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Save_Response_0" label="" mermaidId="L_Save_Response_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Save" target="n:Response" 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="538.90625" y="65" as="sourcePoint"/>
              <mxPoint x="620.648438" y="46" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="589.90625" y="46"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Save_Async_0" label="" mermaidId="L_Save_Async_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Save" target="n:Async" 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="538.90625" y="141" as="sourcePoint"/>
              <mxPoint x="614.90625" y="160" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="589.90625" y="160"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Async_Graph_0" label="" mermaidId="L_Async_Graph_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Async" target="n:Graph" 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="793.90625" y="122" as="sourcePoint"/>
              <mxPoint x="920.90625" y="46" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="895.90625" y="46"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Async_Vector_0" label="" mermaidId="L_Async_Vector_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Async" target="n:Vector" 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="870.90625" y="160" as="sourcePoint"/>
              <mxPoint x="974.078125" y="160" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="895.90625" y="160"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
        <object id="e:L_Async_Extract_0" label="" mermaidId="L_Async_Extract_0" mermaidKind="relationship">
          <mxCell parent="1" source="n:Async" target="n:Extract" 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="799.90625" y="198" as="sourcePoint"/>
              <mxPoint x="964.601563" y="262" as="targetPoint"/>
              <Array as="points">
                <mxPoint x="895.90625" y="262"/>
              </Array>
            </mxGeometry>
          </mxCell>
        </object>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
