title: What is the best practice for using room with RxJava?
body: <p>I am trying my hands on Room and RxJava. I fairly new to both. My code is working fine but I was interested to know about the best practices. </p>
  
  <p>Imagine an object with 10 fields say <code>CompleteSong</code>. In my app, I am making room return a <code>Flowable&lt;List&lt;CompleteSong&gt;&gt;</code> Whenever I make an update in the database, the <code>Flowable</code> updates with all the values. I am displaying that list with a <code>RecyclerView</code>. I have two possibilities to proceed with i.e.</p>
  
  <p><strong>1.</strong> I can store the object that is being changed and wait for the <code>Flowable</code> to update. When the flowable updates I update 1 item of <code>RecyclerView</code>  </p>
  
  <p><strong>2.</strong> I can update the <code>RecyclerView</code> when the <code>Flowable</code> updates parsing through the list and looking for the changed instance of <code>CompleteSong</code></p>
  
  <p>I used to use the former approach, it seems to be less reactive but optimized whereas the latter seems to be more reactive but at the same time less optimized.</p>
  
  <p>Can someone instruct me on this, what should be done? What approach should I follow or there's something else that I couldn't discover.</p>
  
  <p><strong>Note:</strong> I am new to reactive, so please consider updating me on the terminology if I messed something up. </p>