title: DDD dealing with Eventual consistency for multiple aggregates inside a bounded context with NoSQL
body: <p>I am currently working on a DDD Geolocation application that has two separate aggregate roots inside one bounded context. Due to frequent coordinate updates I am using redis to persist my data which doesn't allow rollbacks.</p>
  
  <ol>
  <li>My first aggregate root is a trip object containing driver (users), passengers (list of users), etc.</li>
  <li>My second aggregate root is user position updates</li>
  </ol>
  
  <p>When a coordinate update is sent I will generate and fire a "UpdateUserPostionEvent". As a side effect I will also generate and fire a "UpdateTripEvent" at a certain point, which will update coordinates of drivers/passengers.</p>
  
  <p>My question is how can I deal with eventual consistency if I am firing my "UpdateLiveTripEvent" asynchronously. My UpdateLiveTripEventHandler has several points of failure and besides logging an error how can I deal with this inconsistency?</p>
  
  <p>I am using a library called <a href="https://github.com/jbogard/MediatR" rel="nofollow noreferrer">MediatR</a> and the INotificationHandler which is as far as I know is "Fire and Forget"</p>
  
  <p><strong>Edit:</strong> Ended up finding this SO <a href="https://stackoverflow.com/questions/13507822/eventual-consistency-across-aggregate-roots-in-the-same-bounded-context-using-a">post</a> that describes exactly what I need (saga/process manager) but unfortunately I am unable to find any kind of Saga implentation for handling events within the same BC. All examples I am seeing involve a sevice bus. </p>