title: Using Subject to decouple Observable subscription and initialisation
body: <p>I have an API which exposes an <code>IObservable</code> Status. But this status depends on an underlying observable source which has to be initialised via <code>Init</code>.</p>
  <p>What I'd like to do is protect the users from having to do things in the right order: as it currently stands, if they try to subscribe to the <code>Status</code> before performing an <code>Init</code>, they get an exception because they source is not initialised.</p>
  <p>So I had the genius idea of using a <code>Subject</code> to decouple the two: the external user subscribing to my <code>Status</code> is just subscribing to the Subject, then when they call <code>Init</code>, I subscribe to the underlying service using my Subject.</p>
  <h3>The idea in code</h3>
  <pre><code>private ISubject&lt;bool&gt; _StatusSubject = new Subject&lt;bool&gt;();
  public IObservable&lt;bool&gt; Status { get { return _StatusSubject; } }
  
  public void Init() 
  {
      _Connection = new Connection();
      Underlying.GetDeferredObservable(_Connection).Subscribe(_StatusSubject);
  }
  </code></pre>
  <p>However, from tests on a dummy project, the problem is that the initialisation
  'wakes up' my underlying Observable by subscribing the Subject to it, even if nobody has yet subscribed to the subject. That's something I'd like to avoid if possible, but I'm not sure how...</p>
  <p><em>(I'm also mindful of <a href="https://stackoverflow.com/q/12053709/11410">the received wisdom</a> that &quot;the general rule is that if you're using a subject then you're doing something wrong&quot;)</em></p>