title: Whats the best transaction isolation level can be used for this scenario?
body: <p>I'm very new to databases and I'm new to postgres as well.
  Imagine I'm building a dashboard application which allows the user to edit and update them. Since many users can edit/update a single dashboard, I want to make sure they work with transaction but at the same time scale well.
  I have been reading through docs for some days, and I came with my initial plan:</p>
  
  <p>1.Begin transaction and on update statement postgres will acquire a lock on that row (lock is visible till we commit/rollback), so that other user has to wait. But this doesn't solve my problem.</p>
  
  <ol start="2">
  <li>Or start the transaction with Repeatable Read, which means each of the user is going to get snapshot of the data accordingly hence they can work with their copy and update them as needed. However I'm wondering whether this could break in say few conditions which I haven't thought about?
  Are there any other ways to handle the same?</li>
  </ol>
  
  <p>Imagine the application is something like the google spreadsheet.</p>