@startuml
skinparam shadowing false
title SST component/event mapping for future SST-Core port

component "WorkloadGen" as W
component "Scheduler" as S
component "MetadataRouter" as M
component "GpuExecutor" as G
component "RdmaNic" as N
component "RoceSwitch" as R
component "ZfsPool" as Z
component "BackpressureController" as B
component "ScalingController" as C

W --> S : WorkloadArrival
S --> M : MetadataLookup
S --> G : GpuKernelSubmit
S --> N : RdmaPacketBatch
N --> R : RdmaPacketBatch
S --> Z : ZfsTxgWrite
Z --> Z : ZfsTxgStateTransition
M --> B : BackpressureSignal
N --> C : metrics
G --> C : metrics
Z --> C : metrics
M --> C : metrics
C --> S : ScaleApply

note bottom
The OCaml simulator writes sst_components.csv and sst_events.csv
with the same component/event names shown here, so the same model can
be ported into SST-Core components and links.
end note
@enduml
