Validation of a Saga Use Case

Is this scenario a reasonable use case for sagas, or am I being too clever by half?

I have a set of files which I download from a vendor (around 80), each of which, or more precisely a set of, may have its own publication time - hence download - schedule. The file data is then staged into SQL Server tables, which are then used to update an online catalog.

I am using NServiceBus for some of the steps, but I am now reconsidering using a saga where

  1. A scheduler triggers the file download from an ftp site
  2. an ftp completed message triggers an unzip request
  3. Unzip completion triggers a downloaded message which
  4. Triggers a progress log update and
  5. Triggers moving the zip file to backup
  6. and triggers a data loader to load the data into the associated staging table
  7. whose completion creates a data-loaded event which triggers
  8. The unzipped file is to be copied to the processed folder and triggers
  9. Update/addition of a record of completion of the data loaded event. (the download, unzip, data load, backups/moves should be recorded with the same id if possible.
  10. The data loaded event triggers creation of load files for the online catalog. and
  11. Its progress is logged in a process table.
  12. Finally, the catalog files are processed by the cataloger process,s which could be its own beast.

I was thinking of “platforming” these steps/processes on a saga. yes/no/maybe? Can a saga easily follow, for lack of a better term, a correlation ID that unifies each of the messages/states? So there could be a dozen of these sagas occurring in parallel, and there should be no confusion among them. They are to be isolated, self-contained operations that are unaware of one another.

I just discovered pipelines which may be a better option. tbd.
can a pipeline be part of a saga? i think of the full data journey as potentially being long winded but my workflow is still very pipeline oriented.

does aspire fit into this solution? are they separate ways of solving/orchestrating processes?

What is it you want to achieve?

You mention you need to download a file occasionally and then process it and so some stuff. Why not do that from within the schedular? A couple of functions that each to their own step from the 12 you mentioned. Why make it harder by including NServiceBus?

I’m not saying it’s a bad idea what you’re proposing. The problem is that I don’t know why you’re proposing your suggestions and asking for verifiction from us.