Skip to content

Modes and patterns

Every step picks a job shape with DRTML run.type. That is the public contract. Internally the loader may lower it to a pattern or execution.entry; you usually do not care until you extend the framework.

When you need… Use run.type Plain meaning
Stream feed rows through a domain processor partition Classic map over documents / shards
Merge identities into a stable registry + crosswalk mapping Cross-run id merge, not a processor loop
Sum / fold partial outputs reduce Aggregate after multi-worker or shuffle
Offline corpus-growth / registry curves dataset_metrics Metric jobs over existing runs
Bounded quality sample on vectors / clusters / graphs evaluation Deterministic offline evaluation
Stateful streaming embed fold over vocab embed_train Train shared embedding table W
Something that does not fit the above custom Your run.entry owns the lifecycle

Builtin types pick the framework entry automatically. DRTML v4 is the only public source contract.