title: Single or multiple topic (stream) per Aggregate Root event in kafka
body: <p>My <code>Order</code> aggregate root is able to emit several <code>Event</code>, e.g. <code>OrderCreated</code>, <code>OrderPaid</code>, <code>OrderCancelled</code>. Would it be good design to store all types of order event into single kafka topic and to have the <code>orderId</code> as the message key, as suggested <a href="https://stackoverflow.com/a/17813930/273183">here</a>? Or Should I create sepparate topic for each of them?</p>
  
  <p>The pro of having single topic is that the order of events is maintained, but consumer would need to filter some events on their end. The pro of second approach is consumer would be simpler as they can subscribe to the exact topic that they need, but constructing <code>Order</code> requires subscribing to multiple topic while they don't come from kafka in the right sequence as they are from different topics.</p>
  
  <p>Thank you</p>