hij1nx/level-replicator — pull request #8 by jhs (2014-05-22 09:29:41+00:00)
Title: Version compatibility

Breaking changes are coming soon. It would be quite bad if a database pulls down bad data and ruins its contents due to changes to the data or protocol.

The server initializes the replication database before emitting a "ready" event. For now, it simply inserts its version from package.json. There is an RPC call, `version()` to look up this version. (The version is looked up from the DB rather than returned from package.json because the idea is, the *data* is of a certain version, not the server; although it's a subtle and unimportant distinction for now.)

If the client is not the same version as the server, it will crash. While this package is still at major version 0, any difference is considered fatal. Once version 1 comes out, the idea is to use semver to determine compatibility. For now, always run the client and the server from the same release. (This is what people probably do already but now it is enforced to protect the data.)