[kinto] Kuzzle and Kinto

Mathieu Leplatre mathieu at mozilla.com
Tue Sep 13 15:26:18 UTC 2016


At the Fullstack fest conference [0] I had the chance to meet Anthony and
Luca
from Kuzzle [1].

Kuzzle is a generic storage backend that shares the same intentions as
Kinto.

We were already in contact with the Kuzzle team via Github [2], but those
couple of days spent together were very insightful!

Funny enough, the project was started almost at the same time, and when
they brainstormed for a name they also had «Kinto» in their shortlist!

Kuzzle is developed by a small «Labs» team within Kaliop [3], a rather big
consulting company. The company engineers outside the team are in charge of
integrating the solution for customer projects.
With the support of the main company CTO, Kuzzle is like a startup
developing a reusable backend that allows their colleagues deliver modern
apps more quickly, always with the same proven architecture.

Kinto and Kuzzle have interesting differences, and I thought it would be
interesting to highlight them here.

- Kuzzle has a Websocket API, which makes the realtime a first-class feature
  (I found interesting the fact that AMQP is also a incoming channel of
data).
  Kinto has a REST API and sends push notifications.

- As far as I understood, there is no revision tree / history stream in
Kuzzle. The paradigm is different than Kinto (or PouchDB) where a local
copy is kept for offline use, and synchronized sporadically.

- Unlike kinto.js which leverages IndexedDB, Kuzzle JS client does not take
care of persistence: everything is kept in memory. If developers want to
persists for offline retention, they have to rollout a solution themselves.

- Kuzzle serves data via the ElasticSearch API. Although it's very
powerful, it makes it harder to decouple internal storage from
ElasticSearch itself. In Kinto, indexing and serving records via
ElasticSearch is not complicated [3], but we never shipped it in core
because we had no concrete usecase for it (yet). Our client apps usually
keep a local copy of the data, or encrypt it and send blobs to the server.
Our simple custom query API has made the job so far. And we want our data
to be stored in something like PostgreSQL.

- Anthony and Luca were amused by the fact that our Kinto admin [4] could
be hosted on Github Pages and be plugged to any remote server

- Kuzzle allows developers can submit snippets of code for
incoming/outgoint requests and authorizations logics. The server executes
them in a sandbox.

- Technologically speaking, they use Node and Vue.js, JSON Web tokens...
They have iOS, and Android SDKs...

Unlike Kinto for the use-cases we have at Mozilla, the topics of digital
signatures, encryption, validation workflows do not seem to be among their
priorities.

I probably missed some of the many points we discussed, but I hope this
email gives you some insights about the some of the differences between the
two solutions...

Don't hesitate to provide precisions or ask questions if any :)

Mathieu

- 0: http://2016.fullstackfest.com/
- 1: http://kuzzle.io/
- 2: https://github.com/Kinto/kinto/pull/295#issuecomment-159543852
- 3: http://www.kaliop.com
- 4: https://kinto.readthedocs.io/en/latest/tutorials/write-plugin.html
- 5: https://kinto.github.io/kinto-admin/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/kinto/attachments/20160913/29841c50/attachment.html>


More information about the Kinto mailing list