title: Document management system: what to use as storage backend (docs content repository)?
body: <p>I want to make a document management system (interface in Ruby).<br>
  What do profesional sollutions (Alfresco, Liferay social office, others) use for storing and versioning documents?<br>
  What else can I use?</p>
  
  <p>Key points:</p>
  
  <ul>
  <li>storage space optimization (deltas, compression ...)</li>
  <li>versioning</li>
  <li>ability to index docs (can be external)</li>
  <li>ability to make backups at runtime (live hot-backup)</li>
  <li>locking?</li>
  <li>scalability on large data volume</li>
  <li>ensure data integrity (hashing?)</li>
  <li>permissions</li>
  <li>transactional</li>
  <li>Workflow support (optional)</li>
  </ul>
  
  <p>Bonus points:</p>
  
  <ul>
  <li>how does <a href="http://wiki.knowledgetree.org/Knowledgebase_Articles" rel="noreferrer">KnowledgeTree</a> do it?</li>
  <li>how does <a href="http://www.liferay.com/products/liferay-social-office" rel="noreferrer">Liferay Social Office</a> do it (jcr?) ?</li>
  <li>how does <a href="http://wiki.alfresco.com/wiki/Alfresco_Repository_Architecture" rel="noreferrer">Alfresco</a> do it ?</li>
  </ul>
  
  <p>Any books on this issue ?  </p>