Перейти к основному содержимому

Справочник core SDK

Это публичная поверхность автора. Конструкторы для авторов библиотек (NewResource, NewAttached, FailedResource, recording hooks и raw worker API) намеренно не входят в обычный workflow пайплайна.

Pipeline

СимволКонтракт
Main(id, fn, ...MainOption)обслуживать один типизированный пайплайн
WithTriggers(...trigger.T)объявить автоматические точки входа
WithConcurrency(policy)выбрать Queue, CancelPrevious или Parallel
Context.RunId()identity текущего рана
Context.Logger()replay-safe Temporal logger
Var(name)ссылка на видимое значение инсталляции в trigger params
UseSecret(name)ссылка на имя секрета в trigger params
Secret(ctx, name)ссылка на секрет внутри рана

Handles и владение

СимволКонтракт
Resource[T].Ready(ctx)дождаться и вернуть T; ошибка convergence провалит ран
Resource[T].TryReady(ctx)дождаться и вернуть (T, error)
Attached[T]читаемый чужой handle без методов владения
Parent(h)сделать h владельцем декларации
Children(h...)отдать существующие свои handles новой декларации
WithLabels(map)записать метки выборки
WithFlow / WithFlowToаннотировать исходящее ребро топологии
FlowPort(n)задать целевой порт ребра
ToStand(ctx, h, ...TransferOption)передать своё поддерево stand пайплайна
KeepFor(duration)TTL под stand; без него нужно явное удаление

Протоколы flow: TCP, HTTP, GRPC, PrometheusPull, RemoteWrite, OTLP. Flow описывает топологию, но не настраивает сеть.

Агенты

СимволКонтракт
NewAgentобъявить запись и получить cloud-init установки
NewAgentViaSSHобъявить и установить на существующую SSH-машину
AttachAgentиспользовать существующий агент без владения
SelectAgentssnapshot по меткам и требованиям capability
Needпотребовать готовую capability
WhereLabel, WhereInограничить метки capability
PublishCapabilityзаписать, что workflow сделал истинным на машине

AttachAgent принимает требования capability, но не владение в дереве. Выборка тоже чужая и не захватывает будущие подходящие агенты.

Actions и artifacts

СимволКонтракт
activity.Fn, ActivityFn, Fn0связать стабильное имя, body и сериализуемый input
activity.Activityвыполнить на одном агенте
activity.ActivityAllвыполнить параллельно на snapshot
WithGuaranteeAtLeastOnce или AtMostOnce
WithTimeout, WithHeartbeatограничить выполнение и обнаружить потерю
NewArtifactопубликовать FromBytes или FromAgentFile
AttachArtifactпрочитать чужую запись артефакта

At-most-once timeout присоединяет pipeline.ErrUnknown: система не может доказать внешний эффект и не повторит его молча.

Конструкторы с теми же handles находятся в библиотеках ресурсов.