Announcing something new: Zumero
I am so very excited to unveil our latest endeavor:
What is Zumero?
To describe Zumero, we first describe SQLite.
SQLite is a lightweight (but
surprisingly powerful) implementation of a SQL database.
SQLite is the standard database software for iOS, Android, and Windows RT.
It is installed on over a billion mobile devices.
But like any other computer, and perhaps more so, a mobile device is not
isolated. It needs to share data with a server.
And SQLite has no synchronization capabilities.
Zumero solves that problem.
Zumero is "sync for SQLite".
No, really, what is Zumero?
It's a better database platform for mobile.
Mobile apps need to talk to the cloud about data.
A lot of people are building mobile apps that
use the "remote procedure call" model. Every user operation requires a network
request to the server.
We think "replicate and sync" is a better model. The app can interact
with a local copy of the database instead of going through the
network. Synchronization can be handled entirely in the background.
Putting network activity in the background brings two big wins:
The developer wins because networking issues are isolated in a small part of the app.
The real features of the app can be the focus of the developer's attention, and are easier
The user wins because the app is faster, more responsive, and works offline.
Consider a typical situation where a mobile app responds to a user action by
filling a list box with the results of a database query. Neither the developer
nor the user wants the network involved between the
button tap and the refresh of the display. Mobile networks are just not
consistent enough. Even a perfectly-working LTE connection usually has enough
latency to make the app feel sluggish.
Oh good grief. Eric, I thought you were a geek? Tell us what Zumero is.
On the client, Zumero is a SQLite extension. The server is built on
The client tries very hard to be invisible to the developer. We didn't want
to introduce a whole new API for everybody to learn, so developing
with Zumero isn't much different from SQLite.
Porting an existing SQLite
app to use Zumero is usually straightforward.
The SQLite extension uses SQLite's "virtual tables". A Zumero table
mostly works just like a regular table, except that it can be synced.
The Zumero server manages the central, authoritative copy of the database and
handles all the details of synchronization, merging changes, conflict
logging, authentication, and permissions.
Because it's an incredible piece of software. If you're not familiar with
SQLite, give it a serious look. It has come so far that keeping the word
"Lite" in the name seems inappropriate. SQLite is fast, robust, and far more
capable than most people know.
Because it's everywhere. Every smart phone and tablet has SQLite inside.
Even Microsoft has given up the notion of shrinking SQL Server and decided to
standardize on SQLite as its recommended database for Windows RT.
Because it needs a sync feature. The real question here is not "Why SQLite?" but rather, "Why NOT SQLite?"
Why should people consider anything except SQLite for dealing with mobile data?
The main answer is obvious: SQLite doesn't sync. Zumero was created to fill
that need, not by introducing a new mobile database system, but rather, by
adding painless synchronization features to the high quality database that is already
What platforms do you support?
Right now (March 2013), the Zumero Client SDK includes support for iOS and Android.
WinRT is planned. Blackberry is not, but that might change if
there is evidence of customer demand.
We will also be supporting two of the cross-platform mobile solutions:
Apache Cordova (aka Phonegap) and Xamarin. We've made significant progress
on both of these, but neither of them was ready for the initial release.
The client SDK also includes support for (regular) Windows and Mac OS.
This may seem odd, since Zumero is all about mobile.
very few so-called mobile apps are
accessed exclusively from mobile devices.
You may (and probably will) want the ability to also access your
data from web apps, desktop applications, or even other servers.
Even if you don't need any of these things, the SQLite
command-line shell is a handy way to perform administrative tasks
for your Zumero server, such as initial setup of your schema,
configuring permissions, or analyzing logs.
How does Zumero store data on the server?
The Zumero server has a plugin architecture designed to support a variety
of SQL databases. We currently have two implementations of the database
backend: SQLite and PostgreSQL.
At the present time (still March 2013), the Zumero server is available as a
cloud-hosted service with the SQLite backend, but it will be made available
in other flavors later.
What about server platforms?
From a strictly technical perspective, the Zumero server runs just fine on Linux,
Mac, and Windows.
The current cloud-hosted offering is Linux, running in the Amazon cloud.
In the future, we will make the server available in three ways: in the cloud,
on-premises, or as a desktop server for development purposes. Not all combinations of
platform and deployment are likely to be interesting. Things will probably
end up something like this:
|Nobody wants this
|We'll support Commodore 64 right after node.js does
Is Zumero open source?
Who are Zumero's competitors?
As always, that depends on how narrowly you define "competitor". :-)
At one extreme, we are not aware of anybody doing EXACTLY what we are doing.
At the other extreme, everybody doing anything with data and mobile is a competitor.
If I had to name just one other player, it would be Couchbase Lite. Couchbase founder J. Chris Anderson recently
did a great blog entry called Why Mobile Sync?.
His tune sounds a lot like the one we're singing about Zumero.
So it wouldn't be outrageous to describe Zumero by saying, "It's like Couchbase Lite. Except it's SQL".
SQL? I thought SQL was dead?
Hardly. The NoSQL offerings are gaining traction, but SQL still has far
greater market share, especially in the enterprise.
How does Zumero compare to Parse/Kinvey/Stackmob and their ilk?
We don't really think of Zumero as a "Backend as a Service" (BaaS) company,
since we're focused on the database part of the story.
But if you ignore all
the other mobile backend stuff (like push notifications), it would be reasonable to
describe Zumero by saying, "It's like Parse/Kinvey/Stackmob.
Except it's a replicate-and-sync model. And it's SQL."
Is Zumero part of SourceGear?
No. Yes. Sort of.
In terms of market positioning, Zumero is separate. It does not
share SourceGear branding. It has no particular connection with
But financially, Zumero is currently part of SourceGear. (This approach is
similar to what we did with Teamprise, which we sold to Microsoft in 2009.)
Corey and I think of Zumero as our new startup, which is being incubated
Mobile data? Really? How is this related to version control?
But the genesis of Zumero happened when we did the iPad app for Veracity.
We liked the "replicate and sync" model for mobile so much that we decided to
take the databasey part of Veracity and productize it as a platform for building
all kinds of mobile apps.
Along the way, the technology evolved a lot, to the point where it doesn't
look much like the original Veracity code, but that's what we started with.
This is actually somewhat of a return to our roots for SourceGear.
We spent a lot of our first three years doing mobile development as contract work for
Motorola. Of course, today's mobile devices are just a little more powerful
than that phone we worked on back in 1997. :-)
What does this mean for SourceGear's other products, Vault and Veracity?
They are continuing to move forward. Vault 7 is underway and aiming for a Q3 release.
Veracity 2.5 is done and will be released sometime in the next two weeks.
How can I try Zumero or find out more about it?