Glossary#

本页定义 Perago 文档中的固定术语。Avoid 表示容易混淆但不应该在 Perago 语境中替代使用的说法。

Task language#

Task Module#

一个 Python module,且只声明一个 Perago task worker。

Avoid: app、registry module、multi-task worker file。

Task Worker#

由 typed Python function 和 Perago task metadata 共同定义的一个 Conductor task type。

Avoid: route、endpoint、handler app。

Task Contract#

从 Python 函数签名推导出的输入和输出形状。

Avoid: duplicated params declaration、duplicated output declaration。

Task Controls#

映射到 Conductor TaskDef retry、timeout 和 execution-limit 字段的 Perago 配置对象。

Avoid: task contract、business params、workflow input。

Task Function Signature#

Task worker 必须使用的 Python callable 形状:workspace task 接收 workspaceparams,workspace-free task 只接收 params,并返回 typed Pydantic model。

Avoid: arbitrary callable、variadic args、keyword-only contract。

Contract fields#

Workspace Input#

Conductor input 中标识 LakeFS repository、writable branch、immutable commit ref 的字段。Perago 会把它暴露成本地路径。

Avoid: business parameter、params field、workspace prefix。

Workspace Output#

Conductor output 中携带成功提交后的 LakeFS repository、writable branch、immutable commit ref 的字段。

Avoid: business result、params field、workspace prefix。

Params Input#

Conductor input 中承载业务 payload 的字段。

Avoid: top-level business fields、workspace metadata。

Result Output#

Conductor output 中承载业务返回值的字段。

Avoid: workspace metadata、top-level business fields。

Workspace language#

Workspace Prefix#

task 在代码里声明的 LakeFS path prefix。Perago 把这个 prefix 暴露成本地 workspace root。

Avoid: workflow input、workflow output、runtime credential。

Workspace Check#

task 声明的本地 workspace 文件形状检查。源码和公开 API 中仍使用 guardrail 命名,例如 require_filerequire_globcheck_guardrails

Avoid: business validator、schema validator、data transformer。

Workspace Path#

相对于本地 workspace root 的逻辑路径。

Avoid: absolute path、process working directory path、host-specific storage path。

Attempt Workspace#

一次 task attempt 执行 workspace task worker 时使用的本地文件系统目录。

Avoid: shared worker workspace、task-type workspace、process workspace。

Workspace Branch#

workspace task worker 成功时写入的 LakeFS branch。

Avoid: immutable input version、temporary branch。

Protected Workspace Branch#

只接受 Perago 通过 LakeFS merge 更新的 workspace branch。

Avoid: direct object writes、direct branch commit、business lock。

Workspace Ref#

workspace task worker 读取的不可变 LakeFS commit ref。

Avoid: mutable branch name、latest branch head。

Runtime language#

Task Attempt#

Conductor 对一个 task worker 的一次执行 attempt。

Avoid: logical task、worker process。

Logical Task Key#

workflow step 跨重试保持稳定的身份。

Avoid: task id、worker id、process id。

Workspace Transaction#

Perago 管理的发布边界,用于把本地 workspace 结果变成 committed workspace output。

Avoid: direct branch write、business transaction。

Serial Workspace Workflow#

所有写入同一个 workspace branch 的 workspace task worker 都按顺序执行,不能并行。

Avoid: parallel workspace writers、fan-out writers。

Single Active Workspace Workflow#

同一时刻只有一个 workflow instance 可以写入某个 workspace branch。

Avoid: duplicate workspace workflow、concurrent rerun。

Staging Branch#

发布前隔离一次 workspace transaction 的短生命周期 LakeFS branch。

Avoid: target branch、workflow branch、permanent branch。

Attempt Fence#

Perago 在发布 workspace transaction 前检查当前 task attempt 是否仍然是 Conductor 的当前 attempt。

Avoid: retry policy、timeout setting。

Publish Fence#

Perago 在发布 workspace transaction 前检查目标 workspace branch 是否仍处于可发布状态。

Avoid: merge strategy、schema validation。

Publish Budget#

Perago 为 LakeFS merge、Conductor completion、heartbeat 和 worker shutdown 预留的操作性时间边界。

Avoid: hard transaction guarantee、exact worst-case duration。

Workspace Task Worker#

接收并提交 versioned workspace 的 task worker。

Avoid: task with optional workspace。

Workspace-Free Task Worker#

只接收 business params 并只返回 business result 的 task worker。

Avoid: empty workspace、fake workspace。

Worker Process#

加载一个 task module 并独立 poll Conductor 的操作系统进程。

Avoid: internal worker slot、process-pool worker。

Worker ID#

运行时给一个 worker process 分配的身份,用于日志和 Conductor polling。

Avoid: task id、process id、logical task key。

Worker ID Prefix#

部署时配置的前缀,worker supervisor 用它生成 worker IDs。

Avoid: worker id、task id、task name。

Worker Supervisor#

perago start -j 启动的父进程,负责启动和重启 worker processes。

Avoid: internal task scheduler、shared task pool。

Module Target#

用于定位一个 task module 的 Python import path。

Avoid: file path、object path、module:app target。