跳转至

架构

适用读者
  • 需要快速定位模块边界与分层职责的开发者
  • 项目贡献者(改行为前对齐语义边界)

这页给你一个“能快速定位目录/边界”的架构速览.更完整的架构细节见:

建议先看:

1. 一图看懂: 从需求到输出

Scalim 的主干可以概括成: 需求(IR) → 执行计划(plan) → 批次流水线(pipeline) → 输出(sink).

flowchart TD
  subgraph Inputs[输入]
    Y[YAML DSL 配置]
    P[Python DSL 需求定义]
  end

  Y --> V[解析+校验<br/>DemandConfig]
  V --> IR[规范层 IR<br/>DemandIr]
  P --> IR

  IR --> Plan[规划层<br/>ExecutionPlan]
  Plan --> Run[执行层<br/>SeqPipeline + BatchExecutor]
  Run --> Sink[输出层<br/>ISink/IRowSink/IColumnSink]

  Run -.-> Hooks[hooks<br/>流程定制]
  Run -.-> Obs[ob/events<br/>可观测性]

2. 分层与职责(按目录)

flowchart LR
  DSL["dsl/<br/>(YAML DSL)"] --> SPEC["spec/<br/>(IR 规范)"]
  SPEC --> PLAN["planning/<br/>(ExecutionPlan)"]
  PLAN --> EXEC["execution/<br/>(Pipeline/Executor/Runtime)"]
  EXEC --> SINK["sinks/<br/>(输出)"]

  EXEC -.-> HOOK["hooks/<br/>(定制)"]
  EXEC -.-> OB["ob/ + events/<br/>(观测)"]

3. 从哪里开始读