title: What is the difference between a saga, a process manager and a document-based approach?
body: <p>What I understand is that all three concepts are related to long-running transactions.</p>
  
  <p>A process manager is, to my understanding, a finite state machine which simply reacts on events and emits commands. It does not contain any business logic, it just does routing. Its goal is to bring you to a final state, where you know that your transaction has succeeded or failed.</p>
  
  <p>So far, so good.</p>
  
  <p>But now my problems in understand start:</p>
  
  <ul>
  <li>What is a saga in contrast to a process manager?</li>
  <li>There is also the document-based approach, as mentioned in <a href="https://stackoverflow.com/questions/13489829/cqrs-sagas-did-i-understand-them-right">CQRS sagas - did I understand them right?</a> … as I understand it, a document is just a "piece of paper" where you take notes and hand it around. How does that fit into the concept of commands and events?</li>
  </ul>
  
  <p>Can anybody please explain the differences, and - what I'd be especially interested in - which of these concepts is good for what, and when you do need what. Are they mutually exclusive? Can you go along all the way with only one of them? Are there scenarios where you need more than one? …?</p>