Couchbase Mobile Syncpoint

Version 6 by jchrisa
on Feb 10, 2012 18:34.

compared with
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (12)

View Page History
Smartphones are becoming more popular than laptops. This explosion of growth has already made mobile applications into a hit product category, but this wave is just beginning. Custom apps are moving into the enterprise for jobs like electronic medical records, point of sale, on-site service, industrial automation, and inventory tracking.

Couchbase Mobile Syncpoint offers a common data layer across mobile devices and the cloud, providing real-time synchronization, backup and sharing. With Syncpoint, changes made on one device appear instantly in your cloud and on other devices, powering secure multi-user interactive applications. A managed approach to connectivity relieves developers from the common chore of network error handling, so they can focus on creating value. High-throughput storage and object-level deduplication come from Couchbase Server integration, as well as top-down clarity with incremental map reduce across your aggregate data.
h3. Hello Syncpoint

Today we have:
Syncpoint manages Apache CouchDB databases for multi-device installations. It provides a distributed API so that clients can ask the server to provision channels, and have a database created in the cloud. It also handles new user signup and mobile device pairing, and even works with CouchDB web user signup, if you want to provision databases for your web users.

*Couchbase Mobile Syncpoint*: preparing initial release. The mobile clients can sync with Apache CouchDB, so in the short term that is the recommended development environment.
[Syncpoint API|] is a Node.js app driven by CouchDB's continuous _changes API. Syncpoint interacts with remote clients via CouchSync replication, so application functionality is fast and robust even when the device is offline. For more information on installation, usage, and contributing, see the [README and the open source project|].

*Mobile SDKs*: The client libraries based on the original Erlang CouchDB codebase: [iOS], [Android].
If you like pictures, [here's an architecture intro|] to how you might structure an app with Syncpoint.

*[TouchDB|]*: Experimental CouchDB sync-compatible native code for iOS and Android.
If you just want to jump in:

# Install Apache CouchDB 1.2
# Install node.js >= 0.6.0
# Run these commands:

mkdir syncpoint && cd syncpoint
npm install syncpoint
npm start syncpoint

h5. Technical background for contributors and users

Syncpoint is responsible for provisioning and linking new databases between client devices and the cloud CouchDB installation. This means that sync functionality doesn't require the Syncpoint process to be up. Any user signup or channel provisioning requests started when Syncpoint isn't running will be safely spooled in CouchDB and handled on next Syncpoint launch.

Syncpoint API drivers work by listening for document updates in CouchDB. Developers can register listeners for document types, so any additional functionality is just a JavaScript module that binds to the control channel. All of Syncpoint API is implemented in that way, so code examples are easy to find. (Look in the `lib` and `plugins` directories).

We need your feedback and contributions, they will play a huge role in the direction of the project, so please let us know if you are experimenting with Syncpoint.

h5. Related links

* [Syncpoint API|]: The drivers for pairing TouchDB on mobile devices with Apache CouchDB in the cloud.

* [TouchDB|]: CouchDB sync-compatible native code for iOS and [Android|].

* Legacy Mobile SDKs: The client libraries based on the original Erlang CouchDB codebase: [iOS|], [Android|].

* For community interaction, the best place to start is [the mobile Couchbase mailing list|!forum/mobile-couchbase]