title: How to architect a multi-step process using a message queue?
body: <p>Say I have a multi-step, asynchronous process with these restrictions:</p>
  
  <ol>
  <li>Individual steps can be performed by any worker</li>
  <li>Steps must be performed in-order</li>
  </ol>
  
  <p>The approach I'm considering:</p>
  
  <ol>
  <li>Insert a db row that represents the entire process, with a "Steps completed" column to keep track of the progress.</li>
  <li>Subscribe to a queue that will receive a message when the entire process is done.</li>
  <li>Upon completion of each step, update the db row and queue the next step in the process.</li>
  <li>After the last step is completed, queue the "process is complete" message.</li>
  <li>Delete the db row.</li>
  </ol>
  
  <p>Thoughts? Pitfalls? Smarter ways to do it?</p>