AbstractAbstract ReadonlyEntityThe entity this stage runs over.
Abstract ReadonlyNameThe registered name; must match the @RegisterClass key.
Abstract ReadonlyStatusThe status column the committer advances and a Record Process's filter reads (e.g. ExtractionStatus).
null for Discover, which walks every source selected by the Record Process filter rather than advancing a status.
The value StatusField takes on success. The vocabulary belongs to the column (DeleteStatus uses 'Deleted').
OptionalFinalizeOptional bulk step for work far cheaper in bulk (one embedding call for fifty texts). Run then only
gathers; Finalize gets the page's records and returns one outcome each. Used only when the stage is
last in the run's list.
AbstractRunDo this stage's work on one record. Return an outcome; a thrown TransientStageError or FatalStageError is understood too, and any other throw is treated as fatal.
The value for a Skipped or finally Failed outcome, or null to leave the column alone.
StaticResolveResolve a registered stage, or null. Uses TryCreateInstance because CreateInstance falls back to a
hollow base instance on an unknown key, which would make a typo in a Record Process silently do nothing.
A registered unit of pipeline work: one working record in, one outcome out. Adding a stage is writing a class and registering it — never editing a list.
Cold start is the normal case: in production a stage gets a record hydrated moments ago, with no other stage having run in the same call, so a missing optional field is a legitimate input.
Example