1. A method for autonomous, secure data synchronization comprising: storing a local state of a shared data item wherein said first state is stored at a first location; detecting a difference between said local state and a second state of said shared data item wherein said second state is located at a second location wherein said first location and said second location are connected by a computer network; and synchronizing said local state and said second state.