title: With Celery Canvas, what is the difference between chord() and chain(group(), task)
body: <p>We're implementing a workflow with Celery. First we need to run some tasks in parallel, and when they are all finished we need to run a single task.</p>
  
  <p>It seems we can use chord, or group and chain:</p>
  
  <pre><code>chord(tasks, task)
  </code></pre>
  
  <p>vs</p>
  
  <pre><code>group(tasks) | task
  </code></pre>
  
  <p>What is the exact difference between those two? They seem to do the same thing.</p>