title: How to share objects across processes in .Net?
body: <p>I'm trying to "share" .net objects across separate processes. I have one type of process that's a web service that manipulates a set of domain entities. Another type of process is a window service that's doing some automatic batch processing on the same set of objects.</p>
  
  <p>Beyond the typical solution of having the DB as the shared space where both types of processes read/write the objects, what might be a better, more distributed architecture for having these different processes see and work on the same objects?</p>
  
  <p>I've considered using a distributed cache as a shared store for objects, but that doesn't fully support objects and their relationships. Object graphs inserted into a distributed cache are flattened and objects end up stored in multiple disconnected copies. </p>
  
  <p>Is a "messaging bus" the right way to go about, letting the processes send each other updated copies of the objects?</p>
  
  <p>Or are there other solutions altogether to consider?</p>