Need to pause a process and resume it based on convenience

Hi,
My usecase is as follows,

  1. I have a workflow which after execution few steps need to pause
  2. This process may need to pause/wait for even a day or a week.
  3. This workflow may have thousands of such processes which may be paused at a moment.
  4. Then due to some other events/API call in the application, I need to exactly query the paused process out of others and resume it again.

What is the right components for this to use.
message Intermediate catch ?
Signal Intermediate catch ?
any other way ?