Skip to content

FinalizeRawDataActivity.Execute

Purpose

Определяет post-record outcome для raw-data stage после записи metadata в terry.raw_data_files.

Код: internal/worker/loader/finalize_raw_data.go

Flow

flowchart TD
    Start([Start]) --> Validate[Validate data_source_id, output.raw_data, loader_config_id]
    Validate --> Valid{Valid?}
    Valid -- No --> Invalid[Return non-retryable validation error]
    Valid -- Yes --> Resolve[Resolve current loader config]
    Resolve --> Processor{Processor settings non-empty?}
    Processor -- No --> Success[Set status = success]
    Success --> NoProcessor[Set has_processor = false and processor_requested = false]
    Processor -- Yes --> Requesting[Set status = requesting_transform]
    Requesting --> Flags[Set has_processor = true and processor_requested = true]
    Flags --> IsNew{raw_data.is_new?}
    IsNew -- Yes --> NotifyFlag[Set new_raw_data_notification_requested = true]
    IsNew -- No --> NoNotify[Set new_raw_data_notification_requested = false]
    NoProcessor --> Output[Return updated IngestionOutput]
    NotifyFlag --> Output
    NoNotify --> Output
    Output --> End([End])
    Invalid --> End

Input / Output

Input (loader.FinalizeRawDataRequest): - data_source_id - output

Output (loader.IngestionOutput): - status: success или requesting_transform - has_processor - processor_requested - new_raw_data_notification_requested

Behavior

  • Резолвит current loader config для data_source_id.
  • Считает, что обработчик есть, если processor_settings содержит непустой mode, handler, result_path или непустой options.
  • Если обработчика нет, возвращает status=success и processor_requested=false.
  • Если обработчик есть, возвращает status=requesting_transform и processor_requested=true.
  • raw_data.is_new=true включает только флаг new_raw_data_notification_requested.
  • StructuredDataStore выполняется отдельным workflow activity после finalize.

Error Taxonomy

  • invalid data_source_id: non-retryable validation error
  • ошибка resolve loader config: retryable или typed resolver error

Callers