orbitdb / field-manual

The Offical User's Guide to OrbitDB
208 stars 43 forks source link

How is this different from Dat ecosystem? #74

Open bedeho opened 6 years ago

bedeho commented 6 years ago

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.

mistakia commented 6 years ago

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.

bedeho commented 6 years ago

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.

RichardLitt commented 6 years ago

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

haadcode commented 5 years ago

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? 🙏

bedeho commented 5 years ago

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.

aphelionz commented 5 years ago

@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!

RichardLitt commented 5 years ago

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.

aphelionz commented 4 years ago

Moving to Field Manual to discuss further