title: Building a web app to support team collaboration using Socket.io
body: <p>I'm building a web application that will allow team collaboration. That is, a user within a team will be able to edit shared data, and their edits should be pushed to other connected team members.</p>
  
  <p>Are Socket.io rooms a reasonable way of achieving this? </p>
  
  <p>i.e. (roughly speaking):</p>
  
  <ul>
  <li>All connected team members will join the same room (dynamically created upon first team member connecting).</li>
  <li>Any edits received by the
  server will be broadcast to the room (in addition to being persisted,
  etc).  </li>
  <li>On the client-side, any edits received will be used to update
  the shared data displayed in the browser accordingly.</li>
  </ul>
  
  <p>Obviously it will need to somehow handle simultaneous updates to the same data.</p>
  
  <p>Does this seem like a reasonable approach? </p>
  
  <p>Might I need to consider something more robust, such as having a Redis database to hold the shared data during an editing session (with it being 'flushed' to the persistant DB at regular intervals)?</p>