field-manual icon indicating copy to clipboard operation
field-manual copied to clipboard

How is this different from Dat ecosystem?

Open bedeho opened this issue 5 years ago • 8 comments

The Dat project also has secure logs, key value stores and databases built on top of single and multi author append only logs, distributed over efficient p2p protocol that only does diffs.

  • Can someone elucidate how this offers a different set of costs and benefits?
  • When should one use the Dat toolkit, and when should something like orbit be used.

bedeho avatar Aug 08 '18 12:08 bedeho

First, you need to compare IPFS vs Dat — as OrbitDB is built on top of IPFS via IPFS-log. There are a few discussions scattered around the web on the topic:

datproject.org/faq#dat-vs IPFS/faqs - ipfs vs dat stackoverflow

For my use-cases - IPFS makes more sense because of the interoperability guarantees provided by libp2p as explained here.

mistakia avatar Aug 08 '18 13:08 mistakia

I am not really interested in that comparison, but addressing my question of how orbitdb for example is different from HyperDb will include some part of that comparison also.

bedeho avatar Aug 08 '18 19:08 bedeho

This is a good question! @haadcode, I suspect you might be able to help the most, here?

RichardLitt avatar Aug 08 '18 21:08 RichardLitt

I think @mistakia's answer is a good one as one first needs to consider the underlying storage and transport systems (IPFS vs. Dat) as that's more the defining factor for data formats, hash formats, transport protocols, storage APIs, etc. and those will have the biggest effect on "costs and benefits" and "when should one use the Dat toolkit, and when should something like orbit be used", I believe.

I'm not best equipped to make a full comparison but, from OrbitDB's perspective, what IPFS has that (afaik) Dat doesn't is functionality (and concept) for storing "objects". That is, storing any data in addition to storing files. This is actually imho something many don't see at first due to the "FileSystem" in IPFS, but IPFS works as a general data storage and transport system and files are only one notion of data.

As for hyperdb and OrbitDB: first, I'm big fan of the work @mafintosh is doing in the Dat/hyper* ecosystem! Not having looked throughly into hyperdb and based on a quick look around, I believe the biggest difference between the two is that OrbitDB has the concept of "Stores" enabling multiple data models (any, really) whereas hyperdb is focused to be a key-value database. I believe the underlying data structures are similar, an append-only log, but the semantics and implementation are prolly slightly different.

Would love to hear more comparisons and comments and build the knowledge here as well as in the Dat community so users can make an educated decision! Perhaps @noffle @mafintosh and others can add more detail from hyperdb/dat perspective? 🙏

haadcode avatar Sep 06 '18 10:09 haadcode

Likewise. The fact that one critically relies on CRDTs (which I am not very familiar with), while the other does not, would to my mind suggest that there have to be some pretty substantial differences in tradeoffs.

bedeho avatar Sep 06 '18 11:09 bedeho

@bedeho Closing this for now and I'd like to refer you to the new OrbitDB Field Manual, which aims to answer these sort of questions with the depth and breadth they deserve. If something there is unclear or if you have more questions, please open an issue!

aphelionz avatar Apr 16 '19 19:04 aphelionz

This is a bit of a different question than the Guide is currently able to answer - although we should probably include it in there! For now, reopening this as relevant to some of our users.

RichardLitt avatar Aug 08 '19 15:08 RichardLitt

Moving to Field Manual to discuss further

aphelionz avatar Sep 27 '19 16:09 aphelionz