title: Migrating users of old application to new one on working application
body: <p>I am thinking about possibe ways of migrating users between two systems. It is financial system, a web application (Java, Spring, Hibernate, Oracle, JBoss, etc). There are 500k users to migrate together with their data like accounts, contractors, transfers, many others. New application is already working and has 10k users.</p>
  
  <p>Currently I am only thinking about online / offline migration. Online means, that the applications stays accessible to its users during migration, offline means that I turn it off and display technical break message and the migrations is processing. The client doesn't want to turn the application off so it would mean online migration. When the application is on (accessible to its users), many users may perform different operations (also using externals systems) and many background processes are working and changing database data. It would be quite risky to migrate online:
  - no database backup as during migration many users would do different things in application, so there would be no point of return, 
  - problems during migration could block users that are online (database, transaction locks etc).</p>
  
  <p>And maybe you have some strong points to convince my customer that online migration is nonsense? They propably could be divided by the application layer - the Jboss server risks, database risks, business risks..</p>