how to separate several "a little bit connected" projects?
<p>The main class in my program is <code>OrderBook</code> of some stock.</p>

<ul>
<li>one part of my program, let's call it, <code>NYSE Connector</code> reads data from <code>NYSE</code> and constructs <code>OrderBook</code> of some stocks</li>
<li>second part of my program, let's call it <code>LSE Connector</code> also constructs <code>OrderBook</code> of other stocks but from different exchange and by completely different algorithm</li>
<li>third part of my program manages all set of <code>OrderBook</code> and produce different signals to different connectors (buy such stock on LSE sell another on NYSE etc.)</li>
</ul>

<p>All parts of my program share the same instances of <code>OrderBook</code>. But parts itself are pretty independent. For example I can just run <code>NYSE Connector</code> without running anything else. Then I will just collect <code>OrderBook</code>. Doesn't make much sense, but possible.</p>

<p>Also I need everything to work asap, because even 1 ms is very important for me.</p>

<p>So now I just placed everything in one project (but in different folders), but I think it is not very good. If I will need another connector - I will just create one another folder.</p>

<p>How can I better separate my parts? But remember I need to share the same <code>OrderBook</code> instances.</p>
