本文记录为未来预留的扩展接口与方向。当前路线图明确不在范围:分布式实现与 AI agent 实现(见 redesign-and-roadmap.md §1、§3)。这些接口仅作为设计锚点,避免未来破坏性改动。
现状:sohara-js 提供 source.script / transform.script / sink.script,脚本每次调用创建隔离的 QuickJS context。
预留(对齐 quickjs-api §8 sohara.registerStep):
(kind, type, handler) 到 ComponentRegistry,使纯脚本步骤与 Rust 步骤同权。handler 的调用约定:与 transform(record, ctx) / consume(record, ctx) 对齐,返回 TransformOutcome 语义(record / null / record[] / throw)。已进入正式设计:分布式管理层(控制多单机实例、调度、生命周期、Gateway/Manager、两级 Dashboard)的完整设计见
distributed-plane-and-dashboard.md(v2,含 challenge 决策记录与 D1–D6 实施路线)。本节保留接口层面的锚点说明。
现状:单机为主(用户定稿:单机优先,不做分布式)。事件总线 EventBus trait 与有界 channel 背压语义已为将来替换传输层留好形状。
预留:
EventBus 的网络实现(NATS / Redis Streams / Kafka 等):QueueSource/QueueSink 与触发器只依赖 trait,替换传输层不触碰步骤代码。StateStore 的共享存储实现(数据库 / 对象存储):checkpoint 与幂等投递键目前是单机文件/内存语义,迁移共享存储需要分区与锁(同 run_id 并发安全)。parallel 控制步骤的跨节点扇出(correlation id 已存在于记录路径,是自然的分片键)。原则:先跑通单机正确性(幂等投递、checkpoint、审批队列),再考虑「多实例 + 共享存储」的横向扩展;接口不提前加分布式假设。
现状:不在路线图。设计锚点(对齐 tiger 的 agent 概念):
sohara.llm.* 调用:
sohara.llm.complete(prompt, opts) / sohara.llm.chat(messages, opts):模型调用(provider/model/temperature 等 opts)。approve 步骤复核 agent 输出)、审计日志(prompt/response 落运行历史)。| 方向 | 说明 | 依赖 |
|---|---|---|
| Schema/DataType 增强 | Record 可选 schema + 校验层(S5 已裁剪) |
用户定稿:不进入 JSON 主路径 |
| parquet / text 格式 | file 源与汇的格式扩展 |
可选依赖 arrow/parquet |
| Prometheus 文本指标 | /admin/metrics 增加 text/plain 输出 |
单机可观测性(S6 裁剪) |
| 步骤/触发器级 disable | 管理 API 的细粒度开关 | admin API 状态模型扩展 |
sohara-server 独立服务 |
面板/运行历史 UI | 目前内置于 runtime + CLI |
| email 汇 / join 变换 / subflow | S5 计划中裁剪的类型 | 各类型工厂 + 测试 |