title: twisted deferred/callbacks and asynchronous execution
body: <p>I'm trying to figure out how can i make my code more asynchronous using twisted.</p>
  
  <ul>
  <li>A function returns a deferred object</li>
  <li>then i add a list of callbacks</li>
  <li>the first callback will be called after the deferred function provides some result through <code>deferred_obj.callback</code></li>
  <li>then, in the chain of callbacks, the first callback will do something with the data and call the second callback</li>
  <li>and etc. </li>
  </ul>
  
  <p>however chained callbacks will not be considered asynchronous because they're chained and the event loop will keep firing each one of them concurrently until there is no more, right?</p>
  
  <p>However, if I have a deferred object, and I attach as its callback the deferred_obj.callback as in <code>d.addCallback(deferred_obj.callback)</code> then this will be considered asynchronous, because the deferred_obj is waiting for the data, and then the method that will pass the data is waiting on data as well, however once i d.callback 'd' object processes the data then it call deferred_obj.callback however since this object is deferred, unlike the case of chained callbacks, it will execute asynchronously... correct?</p>
  
  <p>Assuming all of my code is non-blocking, this means that chained callbacks are NOT asynchronous while chained deferreds are, correct?</p>