title: Apache Storm - What is the difference between the Scheme and the MultiScheme interface?
body: <p>I couldn't find any documentation about the <code>Scheme</code> and <code>MultiScheme</code> interfaces of Apache Storm. The implementations are here:</p>
  
  <ul>
  <li><a href="https://github.com/apache/storm/tree/master/storm-core/src/jvm/backtype/storm/spout" rel="nofollow">https://github.com/apache/storm/tree/master/storm-core/src/jvm/backtype/storm/spout</a></li>
  </ul>
  
  <p>But I don't understand when I should use <code>Scheme</code> and when I should use <code>MultiScheme</code>. Most example code I found was using implementations of <code>MultiScheme</code> and many also used the mysterious <code>SchemeAsMultiScheme</code> implementation. 
  Can anyone explain what <code>Scheme</code>, <code>MultiScheme</code> and <code>SchemeAsMultiScheme</code> are actually for? Is there a difference between <code>RawMultiScheme</code> and <code>SchemeAsMultiScheme(new RawScheme())</code>?</p>