title: Are hot non completing database observables a Rx usecase? Side-effect writing issue
body: <p>I have more of a opinions question, asi if this, what many people do, should be a Rx use case.</p>
  
  <p>In apps there is usually sql database, which is queried by UI as a observable, which emits after the query is loaded + anytime data changes (Room / SqlDelight etc)</p>
  
  <p>Reads sound okay, however, is it possible to have "pure" writes to the database?</p>
  
  <p>Writing to the database might look like this</p>
  
  <pre><code>fun sync() = Completable.fromCallable {
     //  do something
     database.writeSomethingSynchronously()
  }
  
  SomeUi {
    init {
       database.someQueryObservable()
         .subscribe { show list }
     }
  }
  </code></pre>
  
  <p>Imagine you want to display progressbar while this Completable is in flight.
  What is effectively happening here is sideffecting to the database. Which means the opened database observable will re-emit when the data is written, but still before the sync() returns (assuming single threaded for simplicity)</p>
  
  <p>Now there is point in time where there is new data in the UI and the progressbar is shown. (and worse with multithreading timings) This is invalid state.</p>
  
  <p>In imperative world, sync would provide a completion callback, in which one would reload the query manually + show/hide progressbar synchronously. (And somehow block the database change listener for duration of the sync writes?)</p>
  
  <p>Is there a way around this at all?</p>