title: nservicebus saga long running process
body: <p>I have a long running process with four steps. S1, S2, S3, S4. S2 and S3 are running sequential, S1 can run parallel to S2. S4 can run parallel to S1, S2 and S3. </p>
  
  <p>Not all processes need to run through all steps. Some only need S2 and S3. Others maybe use S2 and S4.</p>
  
  <p>Now could create one saga class and handle S1,S2,S3 and S4. Many If statements in message and timeout handlers. Next month someone needs to implement S5, running parallel to S3 and S4.</p>
  
  <p>It would be possible to create one saga per possible process flow, but that's many duplicated code. Is it possible to create a class for each step and compose each different process flow by implementing the needed steps in different saga classes? </p>
  
  <p>Should i build 4 saga's and control the process flow from an extern controller and only using the saga to perform the needed timeouts and persistance?</p>