title: What is SEDA (Staged Event Driven Architecture)?
body: <p><a href="https://github.com/mdwelsh/mdwelsh.github.io/blob/master/papers/seda-sosp01.pdf" rel="noreferrer">SEDA: An Architecture for Well-Conditioned, Scalable Internet Services</a></p>
  
  <p>"SEDA is an acronym for <em>staged event-driven architecture</em>, and decomposes a complex, event-driven application into a set of <em>stages</em> connected by <em>queues</em>."</p>
  
  <p>I understand that it's an architecture and that there are many implementations of SEDA (see the <a href="http://en.wikipedia.org/wiki/Staged_event-driven_architecture" rel="noreferrer">Wikipedia article</a>). What is a "stage"? Can someone give a thorough high-level summary of a staged event-driven architecture, and how it differs from traditional (unstaged?) event driven architectures?</p>