Files

77 lines
12 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="680" viewBox="0 0 1440 680" role="img" aria-labelledby="title desc">
<title id="title">Orchestrator and workers</title>
<desc id="desc">메인 세션이 작업을 fan-out하고 스트리밍·폴링 프로세스를 실행하며 monitor의 알림을 구독하는 구조.</desc>
<metadata>{&quot;generator&quot;:&quot;examples/build_examples.py&quot;,&quot;version&quot;:&quot;0.3.0&quot;,&quot;canvas_policy&quot;:&quot;diagram-only&quot;,&quot;decorative_effects&quot;:false}</metadata>
<defs>
<marker id="arrow-ink" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#24272B"/></marker>
<marker id="arrow-muted" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#667085"/></marker>
<marker id="arrow-blue" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#1677FF"/></marker>
<marker id="arrow-green" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#00A86B"/></marker>
<marker id="arrow-red" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#D94B4B"/></marker>
<marker id="arrow-purple" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#7556D8"/></marker>
<marker id="arrow-white" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#FFFFFF"/></marker>
<marker id="arrow-yellow" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#E7C51D"/></marker>
</defs>
<rect width="1440" height="680" fill="#FFFFFF"/>
<rect x="160" y="35" width="1120" height="108" fill="#FCFCFC" stroke="#555B63" stroke-width="1.6" rx="8" />
<text x="720" y="57" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#667085" text-anchor="middle" letter-spacing="1.1">&lt;&lt;orchestrator&gt;&gt;</text>
<text x="720" y="87" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">MAIN SESSION</text>
<text x="720" y="114" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">context + log</text>
<rect x="60" y="245" width="380" height="350" fill="none" stroke="#A7ADB5" stroke-width="1.3" rx="10" stroke-dasharray="7 5" />
<rect x="67" y="237" width="175.3" height="20" fill="#FFFFFF" rx="2" />
<text x="74" y="250" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#667085" text-anchor="start">&lt;&lt;workers&gt;&gt; × N · fan-out</text>
<text x="250" y="282" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="18" font-weight="700" fill="#24272B" text-anchor="middle">SUBAGENTS</text>
<rect x="100" y="305" width="300" height="38" fill="#FFFFFF" stroke="#B6BBC2" stroke-width="1.2" rx="5" />
<text x="118" y="329" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#8A919A" text-anchor="start">SA</text>
<text x="250" y="329" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="middle">Client RPS · latency</text>
<rect x="100" y="355" width="300" height="38" fill="#FFFFFF" stroke="#B6BBC2" stroke-width="1.2" rx="5" />
<text x="118" y="379" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#8A919A" text-anchor="start">SA</text>
<text x="250" y="379" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="middle">Server RPS · latency</text>
<rect x="100" y="405" width="300" height="38" fill="#FFFFFF" stroke="#B6BBC2" stroke-width="1.2" rx="5" />
<text x="118" y="429" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#8A919A" text-anchor="start">SA</text>
<text x="250" y="429" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="middle">JVM heap · GC</text>
<rect x="100" y="455" width="300" height="38" fill="#FFFFFF" stroke="#B6BBC2" stroke-width="1.2" rx="5" />
<text x="118" y="479" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#8A919A" text-anchor="start">SA</text>
<text x="250" y="479" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="middle">Client pool</text>
<rect x="100" y="505" width="300" height="38" fill="#FFFFFF" stroke="#B6BBC2" stroke-width="1.2" rx="5" />
<text x="118" y="529" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#8A919A" text-anchor="start">SA</text>
<text x="250" y="529" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="13" font-weight="600" fill="#24272B" text-anchor="middle">system resources</text>
<text x="250" y="575" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="450" fill="#667085" text-anchor="middle" font-style="italic">완료 결과를 main session으로 반환</text>
<rect x="520" y="245" width="370" height="160" fill="#FCFCFC" stroke="#555B63" stroke-width="1.6" rx="8" />
<text x="705" y="267" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#667085" text-anchor="middle" letter-spacing="1.1">&lt;&lt;streaming&gt;&gt;</text>
<text x="705" y="323" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">BACKGROUND BASH</text>
<text x="705" y="350" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">tail -f -</text>
<text x="705" y="375" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="450" fill="#667085" text-anchor="middle" font-style="italic">새 stdout 라인을 이벤트로 전달</text>
<rect x="520" y="435" width="370" height="160" fill="#FCFCFC" stroke="#555B63" stroke-width="1.6" rx="8" />
<text x="705" y="457" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#667085" text-anchor="middle" letter-spacing="1.1">&lt;&lt;polling&gt;&gt;</text>
<text x="705" y="513" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">BACKGROUND BASH</text>
<text x="705" y="540" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">until &lt;cond&gt;; do sleep N; done</text>
<text x="705" y="565" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="450" fill="#667085" text-anchor="middle" font-style="italic">조건 충족까지 주기적으로 확인</text>
<rect x="1010" y="245" width="340" height="350" fill="#FCFCFC" stroke="#555B63" stroke-width="1.6" rx="8" />
<text x="1180" y="267" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="10" font-weight="500" fill="#667085" text-anchor="middle" letter-spacing="1.1">&lt;&lt;built-in tool&gt;&gt;</text>
<text x="1180" y="418" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">MONITOR</text>
<text x="1180" y="445" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">stdout 수신 · 이벤트 발생 시 알림</text>
<text x="1180" y="565" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="450" fill="#667085" text-anchor="middle" font-style="italic">main session으로 notification</text>
<path d="M 260 143 L 260 185 L 250 185 L 250 245" fill="none" stroke="#24272B" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="178.8" y="165" width="62.4" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="210" y="178" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#24272B" text-anchor="middle">dispatch</text>
<path d="M 290 245 L 290 205 L 300 205 L 300 143" fill="none" stroke="#667085" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="5 4" marker-end="url(#arrow-muted)" />
<rect x="298.1" y="190" width="87.8" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="342" y="203" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#667085" text-anchor="middle">완료 결과 × N</text>
<path d="M 705 143 L 705 245" fill="none" stroke="#24272B" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="670.5" y="185" width="69" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="705" y="198" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#24272B" text-anchor="middle">spawn × 2</text>
<path d="M 1180 143 L 1180 190 L 1180 190 L 1180 245" fill="none" stroke="#24272B" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="1100.8" y="165" width="68.4" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="1135" y="178" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#24272B" text-anchor="middle">subscribe</text>
<path d="M 1220 245 L 1220 205 L 1220 205 L 1220 143" fill="none" stroke="#667085" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="5 4" marker-end="url(#arrow-muted)" />
<rect x="1231.7" y="190" width="86.6" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="1275" y="203" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#667085" text-anchor="middle">notification</text>
<path d="M 890 320 L 1010 320" fill="none" stroke="#24272B" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="924.9" y="297" width="50.3" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="950" y="310" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#24272B" text-anchor="middle">stdout</text>
<path d="M 890 510 L 1010 510" fill="none" stroke="#24272B" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="924.9" y="487" width="50.3" height="20" fill="#FFFFFF" stroke="#C5C9CE" stroke-width="1" rx="2" />
<text x="950" y="500" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#24272B" text-anchor="middle">stdout</text>
</svg>