Amazon Cognito, Realm, and EnduroSync

Just saw Realm appear on Hacker News. EnduroSync does the same thing as Realm. And WE ALREADY HAVE SYNCING. And Android support. And an advanced identity, sharing, and permission system. And very soon Windows 8/Windows Phone 8/Xamarin support. We are light years ahead of Realm.

It looks like the concept of a realm is what EnduroSync would call an object store. All mobile users seem to share a realm. If syncing isn’t already built in, then this seems like a big problem. What happens if one device is offline and has made changes? Does it just overwrite the data on the server when it goes online? Realm seems to have a very limited set of use cases. EnduroSync easily handles the same scenarios that Realm does, and already has syncing. We also have a very advanced permission system which allows sharing of objects stores. So you can have object stores per user, per app, or shared by all your users (and many things in between – the permission system is very flexible).

Another thing that stuck out after perusing the Realm docs is that the local persistence layer is not based on sqlite. It’s home grown. The Realm developers seem to believe this is a positive, but we think it’s a big negative. Designing a robust and fail safe persistence layer is very difficult, especially on mobile devices (mobile devices turn off unexpectedly, apps crash, etc.) Recovering without corruption from these events is not easy, and testing it is even harder. sqlite is a battle tested technology that runs beautifully on mobile devices. Why do you think Apple, Google, and Microsoft use it?

For Realm to catch up with EnduroSync, they will have to implement syncing (hard), add an identity management and permission system (also hard), and add cross platform support (Android, Windows, Xamarin). Why wait?

Compare Amazon Cognito and Realm with EnduroSync. EnduroSync does the same thing as Realm and Cognito combined. You don’t need to wait for Realm to implement syncing (if they ever do – syncing is hard), and you don’t need to have two data models if you use Cognito.

We will be blogging extensively about our architecture as we roll out our open source strategy. From top to bottom, it’s very well thought out and foolproof. Our internal data model is portable to any platform, and we have solved the object database syncing problem. If you implement the EnduroSync client in any programming language or environment, you get syncing for free. We’ve got Objective C, Java, and C# covered. Are there any Ruby, Python, C, C++, Javascript, Scala or Haskell programmers willing to work with us?

 

Amazon Cognito

Yesterday, Amazon announced Cognito. The similarities between Cognito and our products (EnduroSync and Identio) are striking. Including the latin sounding names and pricing.

In a head to head comparison of EnduroSync and Cognito, EnduroSync easily wins.

  1. EnduroSync stores are object databases, Cognito offers a simple key/value store.
  2. EnduroSync has no data size restrictions, Cognito is limited to 1M.
  3. EnduroSync object stores can be shared with multiple users, or even across entire apps. Identio offers a very sophisticated permission system which allows this type of sharing.
  4. EnduroSync has many more uses cases due to items 2 and 3 above. For instance, you can use EnduroSync to create and manage an object store that is shared for everyone using your app. To update every user, you only need to modify your master copy and the deltas are propagated for you.

There are many more reasons for choosing EnduroSync over Cognito. But the big question for us is can we compete head to head with Amazon even with these advantages? We can certainly outmaneuver them by adding features quicker, but is that enough?  Probably not, at least if we only offer a cloud version.

So we have decided to offer more versions of EnduroSync and Identio:

  1. Open source versions. We will have open source licensing for EnduroSync and Identio (clients and servers).
  2. Server versions. Instead of paying based on usage, we will offer paid AMI’s (and other options) that let you run EnduroSync and Identio on your AWS account. This will dramatically lower costs for heavy users.

The open source versions will appear on our GitHub account in the next few days. We will blog here with progress updates. Stay tuned!