title: Dealing with exceptions in an event driven world
body: <p>I'm trying to understand how exceptions are handled in an event driven world using micro-services (using apache kafka). For example, if you take the following order scenario whereby the following actions need to happen before the order can be completed.</p>
  
  <ul>
  <li>1) Authorise the payment with the payment service provider</li>
  <li>2) Reserve the item from stock</li>
  <li>3.1) Capture the payment with the payment service provider</li>
  <li>3.2) Order the item</li>
  <li>4) Send a email notification accepting the order with a receipt</li>
  </ul>
  
  <p>At any stage in this scenario, there could be a failure such as:</p>
  
  <ul>
  <li>The item is no longer in stock</li>
  <li>The payment information was incorrect</li>
  <li>The account the payee is using doesn't have the funds available</li>
  <li>External calls such as those to the payment service provider fail, such as downtime</li>
  </ul>
  
  <p>How do you track that each stage has been called for and/or completed?</p>
  
  <p>How do you deal with issues that arise? How would you notify the frontend of the failure?</p>