mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-23 21:18:58 +00:00
4 lines
60 KiB
XML
4 lines
60 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Do not edit this file with editors other than draw.io -->
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="967px" height="807px" viewBox="-0.5 -0.5 967 807" content="<mxfile host="app.diagrams.net" modified="2023-10-19T12:42:11.358Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0" etag="nS854dJ5CRa-przhGkIF" version="22.0.4" type="device">
 <diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
 <mxGraphModel dx="2284" dy="790" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="#ffffff" math="0" shadow="0">
 <root>
 <mxCell id="0" />
 <mxCell id="1" parent="0" />
 <mxCell id="npRt5ssC39zlkh7Vro30-65" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;dashPattern=1 2;" parent="1" vertex="1">
 <mxGeometry x="449" y="112" width="190" height="285" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-2" value="Assistant Service&lt;br&gt;&lt;br&gt;spelling correction,&lt;br&gt;keyword suggestions" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
 <mxGeometry x="45" y="95" width="120" height="70" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-3" target="npRt5ssC39zlkh7Vro30-7" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-3" target="npRt5ssC39zlkh7Vro30-6" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-3" target="npRt5ssC39zlkh7Vro30-8" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-3" value="&lt;div&gt;Index Service (n)&lt;br&gt;&lt;br&gt;find documents that&lt;br&gt;contain specific keywords,&lt;br&gt;&lt;/div&gt;&lt;div&gt;rank results&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
 <mxGeometry x="278" y="194" width="120" height="126" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-6" value="Fwd Index&lt;br&gt;&lt;br&gt;doc-&amp;gt;word" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
 <mxGeometry x="469" y="307" width="60" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-7" value="Prio Index&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;word-&amp;gt;doc&lt;br&gt;&lt;/div&gt;" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
 <mxGeometry x="469" y="217" width="60" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-8" value="&lt;div&gt;Full Index&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;word-&amp;gt;doc&lt;br&gt;&lt;/div&gt;" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
 <mxGeometry x="469" y="127" width="60" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=97.5;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="npRt5ssC39zlkh7Vro30-9" target="npRt5ssC39zlkh7Vro30-50" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-9" value="SQL Database&lt;br&gt;&lt;br&gt;domains" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
 <mxGeometry x="440" y="503" width="90" height="117" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-28" target="npRt5ssC39zlkh7Vro30-8" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-28" value="convert" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="549" y="147" width="60" height="40" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-29" target="npRt5ssC39zlkh7Vro30-7" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-29" value="convert" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="549" y="237" width="60" height="40" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-30" target="npRt5ssC39zlkh7Vro30-6" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-30" value="convert" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="549" y="327" width="60" height="40" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="npRt5ssC39zlkh7Vro30-50" target="npRt5ssC39zlkh7Vro30-51" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-50" value="Crawler Process&lt;br&gt;&lt;br&gt;download website&lt;br&gt;html code" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="260" y="630" width="150" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="npRt5ssC39zlkh7Vro30-51" target="npRt5ssC39zlkh7Vro30-52" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-51" value="Converter Process&lt;br&gt;&lt;br&gt;extract keywords&lt;br&gt;and metadata" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="410" y="630" width="160" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=97.5;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-52" target="npRt5ssC39zlkh7Vro30-9" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=80;entryDy=65;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-52" target="npRt5ssC39zlkh7Vro30-55" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="1BdkYD6ADzIuFhA4xkfN-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=36.75;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-52" target="1BdkYD6ADzIuFhA4xkfN-5" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-52" value="Loader Process&lt;br&gt;&lt;br&gt;load data into the system" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
 <mxGeometry x="570" y="630" width="200" height="80" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-56" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=25;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="npRt5ssC39zlkh7Vro30-55" target="npRt5ssC39zlkh7Vro30-28" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-57" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="npRt5ssC39zlkh7Vro30-55" target="npRt5ssC39zlkh7Vro30-29" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="npRt5ssC39zlkh7Vro30-55" target="npRt5ssC39zlkh7Vro30-30" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="npRt5ssC39zlkh7Vro30-55" value="Index &lt;br&gt;Journal" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;" parent="1" vertex="1">
 <mxGeometry x="679" y="207" width="80" height="100" as="geometry" />
 </mxCell>
 <mxCell id="OYGECcVUUGNSzEkF8eOo-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="zySom7gVTYjKb9S5v6h9-1" target="OYGECcVUUGNSzEkF8eOo-1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-1" value="&lt;div&gt;Control Service&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ops GUI&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
 <mxGeometry x="41" y="630" width="120" height="70" as="geometry" />
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-2" value="Message Queue" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
 <mxGeometry x="19" y="753" width="817" height="60" as="geometry" />
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-3" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.343;exitY=-0.017;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="zySom7gVTYjKb9S5v6h9-2" target="npRt5ssC39zlkh7Vro30-50" edge="1">
 <mxGeometry width="50" height="50" relative="1" as="geometry">
 <mxPoint x="310" y="753" as="sourcePoint" />
 <mxPoint x="360" y="703" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-6" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.343;exitY=-0.017;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
 <mxGeometry width="50" height="50" relative="1" as="geometry">
 <mxPoint x="479" y="752" as="sourcePoint" />
 <mxPoint x="478" y="710" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.343;exitY=-0.017;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
 <mxGeometry width="50" height="50" relative="1" as="geometry">
 <mxPoint x="670.09" y="756" as="sourcePoint" />
 <mxPoint x="669.09" y="714" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="zySom7gVTYjKb9S5v6h9-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.102;exitY=0.017;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="zySom7gVTYjKb9S5v6h9-2" target="zySom7gVTYjKb9S5v6h9-1" edge="1">
 <mxGeometry width="50" height="50" relative="1" as="geometry">
 <mxPoint x="64" y="749" as="sourcePoint" />
 <mxPoint x="154.5" y="710" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="1BdkYD6ADzIuFhA4xkfN-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=0;exitDy=36.75;exitPerimeter=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="npRt5ssC39zlkh7Vro30-50" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint x="438.5" y="474" as="sourcePoint" />
 <mxPoint x="288" y="638" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="1BdkYD6ADzIuFhA4xkfN-5" value="&lt;div&gt;SQLite database&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;urls, titles,&lt;/div&gt;&lt;div&gt;descriptions&lt;br&gt;&lt;/div&gt;" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
 <mxGeometry x="440" y="412" width="90" height="117" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-1" value="Query Service&lt;br&gt;&lt;br&gt;parse query and&lt;br&gt;delegate work to&lt;br&gt;index service" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
 <mxGeometry x="45" y="187" width="120" height="84" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=36.75;entryPerimeter=0;" parent="1" source="npRt5ssC39zlkh7Vro30-3" target="1BdkYD6ADzIuFhA4xkfN-5" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=-0.007;entryY=0.446;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="abo4ouHoi7hNGgHqqgOK-1" target="npRt5ssC39zlkh7Vro30-3" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="abo4ouHoi7hNGgHqqgOK-6" target="npRt5ssC39zlkh7Vro30-2" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="abo4ouHoi7hNGgHqqgOK-6" target="abo4ouHoi7hNGgHqqgOK-1" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-6" value="search-service&lt;br&gt;&lt;br&gt;Marginalia Search&lt;br&gt;application" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
 <mxGeometry x="-130" y="105" width="120" height="79" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="abo4ouHoi7hNGgHqqgOK-7" target="abo4ouHoi7hNGgHqqgOK-1" edge="1">
 <mxGeometry relative="1" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-7" value="api-service&lt;br&gt;&lt;br&gt;Public API" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
 <mxGeometry x="-128" y="235" width="120" height="60" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-11" value="Application Services" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
 <mxGeometry x="-110" y="31" width="60" height="30" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-12" value="Core Services" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
 <mxGeometry x="53" y="31" width="81" height="30" as="geometry" />
 </mxCell>
 <mxCell id="abo4ouHoi7hNGgHqqgOK-14" 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="10" y="802" as="sourcePoint" />
 <mxPoint x="10" y="8" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="OYGECcVUUGNSzEkF8eOo-1" value="Executor Service (n)&lt;br&gt;&lt;br&gt;orchestrate processes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
 <mxGeometry x="309" y="488" width="75" height="82" as="geometry" />
 </mxCell>
 <mxCell id="OYGECcVUUGNSzEkF8eOo-6" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
 <mxGeometry width="50" height="50" relative="1" as="geometry">
 <mxPoint x="219" y="715.5" as="sourcePoint" />
 <mxPoint x="222" y="8" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="OYGECcVUUGNSzEkF8eOo-7" value="Partitioned (n)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
 <mxGeometry x="237" y="27" width="81" height="30" as="geometry" />
 </mxCell>
 </root>
 </mxGraphModel>
 </diagram>
</mxfile>
"><defs/><g><rect x="579" y="105" width="190" height="285" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-dasharray="1 2" pointer-events="all"/><rect x="175" y="88" width="120" height="70" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 123px; margin-left: 176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Assistant Service<br /><br />spelling correction,<br />keyword suggestions</div></div></div></foreignObject><text x="235" y="127" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Assistant Service...</text></switch></g><path d="M 528 250 L 592.63 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 597.88 250 L 590.88 253.5 L 592.63 250 L 590.88 246.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 468 313 L 468 340 L 592.63 340" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 597.88 340 L 590.88 343.5 L 592.63 340 L 590.88 336.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 468 187 L 468 160 L 592.63 160" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 597.88 160 L 590.88 163.5 L 592.63 160 L 590.88 156.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="408" y="187" width="120" height="126" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 250px; margin-left: 409px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Index Service (n)<br /><br />find documents that<br />contain specific keywords,<br /></div><div>rank results</div></div></div></div></foreignObject><text x="468" y="254" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Index Service (n)...</text></switch></g><path d="M 599 315 C 599 306.72 612.43 300 629 300 C 636.96 300 644.59 301.58 650.21 304.39 C 655.84 307.21 659 311.02 659 315 L 659 365 C 659 373.28 645.57 380 629 380 C 612.43 380 599 373.28 599 365 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 659 315 C 659 323.28 645.57 330 629 330 C 612.43 330 599 323.28 599 315" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 353px; margin-left: 600px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Fwd Index<br /><br />doc->word</div></div></div></foreignObject><text x="629" y="356" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Fwd Index...</text></switch></g><path d="M 599 225 C 599 216.72 612.43 210 629 210 C 636.96 210 644.59 211.58 650.21 214.39 C 655.84 217.21 659 221.02 659 225 L 659 275 C 659 283.28 645.57 290 629 290 C 612.43 290 599 283.28 599 275 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 659 225 C 659 233.28 645.57 240 629 240 C 612.43 240 599 233.28 599 225" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 263px; margin-left: 600px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Prio Index<div><br /></div><div>word->doc<br /></div></div></div></div></foreignObject><text x="629" y="266" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Prio Index...</text></switch></g><path d="M 599 135 C 599 126.72 612.43 120 629 120 C 636.96 120 644.59 121.58 650.21 124.39 C 655.84 127.21 659 131.02 659 135 L 659 185 C 659 193.28 645.57 200 629 200 C 612.43 200 599 193.28 599 185 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 659 135 C 659 143.28 645.57 150 629 150 C 612.43 150 599 143.28 599 135" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 173px; margin-left: 600px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Full Index</div><div><br /></div><div>word->doc<br /></div></div></div></div></foreignObject><text x="629" y="176" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Full Index...</text></switch></g><path d="M 570 593.5 L 465 593.5 L 465 616.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 465 621.88 L 461.5 614.88 L 465 616.63 L 468.5 614.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 570 511 C 570 502.72 590.15 496 615 496 C 626.93 496 638.38 497.58 646.82 500.39 C 655.26 503.21 660 507.02 660 511 L 660 598 C 660 606.28 639.85 613 615 613 C 590.15 613 570 606.28 570 598 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 660 511 C 660 519.28 639.85 526 615 526 C 590.15 526 570 519.28 570 511" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 567px; margin-left: 571px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">SQL Database<br /><br />domains</div></div></div></foreignObject><text x="615" y="571" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SQL Database...</text></switch></g><path d="M 679 160 L 665.37 160" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660.12 160 L 667.12 156.5 L 665.37 160 L 667.12 163.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 699 140 L 719 140 L 739 160 L 719 180 L 699 180 L 679 160 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 160px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">convert</div></div></div></foreignObject><text x="709" y="164" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">convert</text></switch></g><path d="M 679 250 L 665.37 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660.12 250 L 667.12 246.5 L 665.37 250 L 667.12 253.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 699 230 L 719 230 L 739 250 L 719 270 L 699 270 L 679 250 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 250px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">convert</div></div></div></foreignObject><text x="709" y="254" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">convert</text></switch></g><path d="M 679 340 L 665.37 340" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 660.12 340 L 667.12 336.5 L 665.37 340 L 667.12 343.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 699 320 L 719 320 L 739 340 L 719 360 L 699 360 L 679 340 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 340px; margin-left: 680px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">convert</div></div></div></foreignObject><text x="709" y="344" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">convert</text></switch></g><path d="M 540 663 L 553.63 663" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 558.88 663 L 551.88 666.5 L 553.63 663 L 551.88 659.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 390 623 L 520 623 L 540 663 L 520 703 L 390 703 L 410 663 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 663px; margin-left: 391px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Crawler Process<br /><br />download website<br />html code</div></div></div></foreignObject><text x="465" y="667" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Crawler Process...</text></switch></g><path d="M 700 663 L 713.63 663" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 718.88 663 L 711.88 666.5 L 713.63 663 L 711.88 659.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 540 623 L 680 623 L 700 663 L 680 703 L 540 703 L 560 663 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 663px; margin-left: 541px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Converter Process<br /><br />extract keywords<br />and metadata</div></div></div></foreignObject><text x="620" y="667" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Converter Process...</text></switch></g><path d="M 800 623 L 800 593.5 L 666.37 593.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.12 593.5 L 668.12 590 L 666.37 593.5 L 668.12 597 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 663 L 920 663 L 920 265 L 895.37 265" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 890.12 265 L 897.12 261.5 L 895.37 265 L 897.12 268.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 850 623 L 850 441.8 L 666.37 441.75" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 661.12 441.75 L 668.12 438.25 L 666.37 441.75 L 668.12 445.25 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 700 623 L 880 623 L 900 663 L 880 703 L 700 703 L 720 663 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 663px; margin-left: 701px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Loader Process<br /><br />load data into the system</div></div></div></foreignObject><text x="800" y="667" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Loader Process...</text></switch></g><path d="M 834 200 L 834 160 L 745.37 160" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 740.12 160 L 747.12 156.5 L 745.37 160 L 747.12 163.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 809 250 L 745.37 250" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 740.12 250 L 747.12 246.5 L 745.37 250 L 747.12 253.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 849 300 L 849 340 L 745.37 340" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 740.12 340 L 747.12 336.5 L 745.37 340 L 747.12 343.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 809 200 L 859 200 L 889 230 L 889 300 L 809 300 L 809 200 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 859 200 L 859 230 L 889 230 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="all"/><path d="M 859 200 L 859 230 L 889 230" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 250px; margin-left: 810px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Index <br />Journal</div></div></div></foreignObject><text x="849" y="254" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Index...</text></switch></g><path d="M 231 623 L 231 522 L 432.63 522" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 437.88 522 L 430.88 525.5 L 432.63 522 L 430.88 518.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="171" y="623" width="120" height="70" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 658px; margin-left: 172px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>Control Service</div><div><br /></div><div>ops GUI<br /></div></div></div></div></foreignObject><text x="231" y="662" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Control Service...</text></switch></g><rect x="149" y="746" width="817" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 815px; height: 1px; padding-top: 776px; margin-left: 150px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Message Queue</div></div></div></foreignObject><text x="558" y="780" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Message Queue</text></switch></g><path d="M 429.23 744.98 L 427.5 703" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 609 745 L 608 703" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 800.09 749 L 799.09 707" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 232.33 747.02 L 231 693" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><path d="M 568.5 467 L 427.5 467.5 L 427.5 616.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 427.5 621.88 L 424 614.88 L 427.5 616.63 L 431 614.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 570 420 C 570 411.72 590.15 405 615 405 C 626.93 405 638.38 406.58 646.82 409.39 C 655.26 412.21 660 416.02 660 420 L 660 507 C 660 515.28 639.85 522 615 522 C 590.15 522 570 515.28 570 507 Z" fill="#ffe6cc" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><path d="M 660 420 C 660 428.28 639.85 435 615 435 C 590.15 435 570 428.28 570 420" fill="none" stroke="#d79b00" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 476px; margin-left: 571px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>SQLite database</div><div><br /></div><div>urls, titles,</div><div>descriptions<br /></div></div></div></div></foreignObject><text x="615" y="480" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SQLite database...</text></switch></g><rect x="175" y="180" width="120" height="84" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 222px; margin-left: 176px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Query Service<br /><br />parse query and<br />delegate work to<br />index service</div></div></div></foreignObject><text x="235" y="226" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Query Service...</text></switch></g><path d="M 438 313 L 438 441.8 L 563.63 441.75" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 568.88 441.75 L 561.88 445.25 L 563.63 441.75 L 561.88 438.25 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 295 243 L 351.5 243 L 400.79 243.17" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 406.04 243.19 L 399.03 246.67 L 400.79 243.17 L 399.05 239.67 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 120 117.75 L 147.5 117.8 L 147.5 105.5 L 168.63 105.5" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 173.88 105.5 L 166.88 109 L 168.63 105.5 L 166.88 102 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 120 137.5 L 147.5 137.5 L 147.5 201 L 168.63 201" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 173.88 201 L 166.88 204.5 L 168.63 201 L 166.88 197.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="98" width="120" height="79" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 138px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">search-service<br /><br />Marginalia Search<br />application</div></div></div></foreignObject><text x="60" y="141" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">search-service...</text></switch></g><path d="M 122 243 L 168.63 243" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 173.88 243 L 166.88 246.5 L 168.63 243 L 166.88 239.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="2" y="228" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 258px; margin-left: 3px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">api-service<br /><br />Public API</div></div></div></foreignObject><text x="62" y="262" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">api-service...</text></switch></g><rect x="20" y="24" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 39px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Application Services</div></div></div></foreignObject><text x="50" y="43" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Applicatio...</text></switch></g><rect x="183" y="24" width="81" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 39px; margin-left: 184px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Core Services</div></div></div></foreignObject><text x="224" y="43" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Core Services</text></switch></g><path d="M 140 795 L 140 1" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><rect x="439" y="481" width="75" height="82" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 73px; height: 1px; padding-top: 522px; margin-left: 440px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Executor Service (n)<br /><br />orchestrate processes</div></div></div></foreignObject><text x="477" y="526" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Executor Ser...</text></switch></g><path d="M 349 708.5 L 352 1" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 6" pointer-events="stroke"/><rect x="367" y="20" width="81" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 79px; height: 1px; padding-top: 35px; margin-left: 368px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Partitioned (n)</div></div></div></foreignObject><text x="408" y="39" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Partitioned (...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> |