.nornir/assets/collectors-flow.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 300" font-family="sans-serif" font-size="13">
<defs>
<marker id="a" markerWidth="10" markerHeight="10" refX="8" refY="3" orient="auto">
<path d="M0,0 L8,3 L0,6 Z" fill="#6fd3f5"/>
</marker>
<style>
.box{fill:#12232e;stroke:#6fd3f5;stroke-width:1.5;rx:8}
.t{fill:#dCEAF2}.dim{fill:#7fb0cc;font-size:11px}
.edge{stroke:#6fd3f5;stroke-width:1.5;fill:none;marker-end:url(#a)}
.leaf{fill:#12281e;stroke:#5fd39a}
</style>
</defs>
<rect width="900" height="300" fill="#0b1620"/>
<text x="20" y="28" class="t" font-size="15">korp-collectors — open data → Arrow → skade / facett</text>
<!-- sources -->
<rect class="box" x="20" y="70" width="180" height="150" rx="8"/>
<text x="32" y="92" class="t">Open-data sources</text>
<text x="32" y="114" class="dim">ENTSO-E (energy)</text>
<text x="32" y="132" class="dim">AIS (boats)</text>
<text x="32" y="150" class="dim">OpenSky (planes)</text>
<text x="32" y="168" class="dim">Trafikverket / OSM</text>
<text x="32" y="186" class="dim">DCAT · PxWeb · SMHI …</text>
<!-- collector -->
<rect class="box leaf" x="300" y="95" width="200" height="100" rx="8"/>
<text x="315" y="122" class="t">Collector (leaf)</text>
<text x="315" y="144" class="dim">pure-Rust parse</text>
<text x="315" y="162" class="dim">→ Arrow RecordBatch</text>
<text x="315" y="180" class="dim">declares source_target()</text>
<!-- sinks -->
<rect class="box" x="620" y="55" width="230" height="70" rx="8"/>
<text x="635" y="82" class="t">BatchSink → skade</text>
<text x="635" y="102" class="dim">Iceberg warehouse table</text>
<rect class="box" x="620" y="165" width="230" height="70" rx="8"/>
<text x="635" y="192" class="t">facett map scene</text>
<text x="635" y="212" class="dim">osm3d-flight / ways layer</text>
<!-- edges -->
<path class="edge" d="M200,145 L296,145"/>
<path class="edge" d="M500,130 L616,95"/>
<path class="edge" d="M500,160 L616,195"/>
<text x="300" y="270" class="dim">every collector → a nornir-testmatrix descriptor cell (green ⟺ exercised in code)</text>
</svg>