Cooltrooper
Cooltrooper

Reputation: 119

Backend api vs database (as a service)

In a hypothetical arrangement where a number of users need to co-edit data which strategy would produce the best results:

1, a synchronised database such as pouchdb/couchdb. These offer support for multiple clients with the potential for offline data however more work must be done by the client app for data and permissions.

2, a realtime hosted database such as rethinkDb or deepstream. These offer more server logic.

3, database service api such a horizon or deployd offer a quick way to build backend apis on top of database

4, roll your own with something like sails/feathers/loop back allowing the full power of a backend.

To me it seems like a scale of options but things of importance are:

Initial development will be web based (browser/electron) with scope to move onto iOS/android apps. Ultimately I believe I'm unsure if best results can be achieved using a database or a rest api from an app.

Many thanks

Upvotes: 1

Views: 674

Answers (1)

Alex Harley
Alex Harley

Reputation: 363

Full disclaimer I work at deepstreamHub [1], we built deepstream.io and use it to power our hosted cloud offering.

A synchronised database such as pouchdb/couchdb

As far as I'm aware, what you're getting out of these is just a database (albeit very cool ones). They sync data between clients provide all kinds of different operations via their APIs [2].

a realtime hosted database such as rethinkDb or deepstream

Here it's important to note that deepstream is not a database, it's a realtime server that offers pub/sub, remote procedure calls, data-sync, as well as providing authentication strategies etc. rethinkDb is more similar to pouchdb/couchdb.

deepstream is database agnostic, in that we offer a variety of different cache and db connectors (rethinkdb being one of them). RethinkDb works very well with deepstream, in fact we often use the rethinkDb search provider [3] with deepstream to generate dynamic lists.

deepstream officially supports SDKs for JavaScript (Node.js included), Java and iOS.

database service api such a horizon or deployd

As far as I can tell horizon is built on top of rethinkDb and offers a more platform based approach to development, providing authentication strategies etc.

roll your own with something like sails/feathers/loop back

Sails and feathers seem to provide a way of building RESTful / websocket based backends. They each have their use cases they are suited to.

Conclusion

I'd really recommend taking a look at this deepstream blog post An overview of realtime libraries and frameworks where there is a more of an indepth description of each service and what they offer.

[1] deepstreamHub

[2] PouchDB API docs

[3] deepstream rethinkDb connector

Upvotes: 2

Related Questions