title: Synchronizing client-server databases
body: <p>I'm looking for some general strategies for synchronizing data on a central server with client applications that are not always online.</p>
  
  <p>In my particular case, I have an android phone application with an sqlite database and a PHP web application with a MySQL database. </p>
  
  <p>Users will be able to add and edit information on the phone application and on the web application. I need to make sure that changes made one place are reflected everywhere even when the phone is not able to immediately communicate with the server.</p>
  
  <p>I am not concerned with how to transfer data from the phone to the server or vice versa. I'm mentioning my particular technologies only because I cannot use, for example, the replication features available to MySQL.</p>
  
  <p>I know that the client-server data synchronization problem has been around for a long, long time and would like information - articles, books, advice, etc - about patterns for handling the problem. I'd like to know about general strategies for dealing with synchronization to compare strengths, weaknesses and trade-offs.</p>