go-ds-crdt

A distributed go-datastore implementation using Merkle-CRDTs. (by ipfs)

Go-ds-crdt Alternatives

Similar projects and alternatives to go-ds-crdt

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better go-ds-crdt alternative or higher similarity.

go-ds-crdt reviews and mentions

Posts with mentions or reviews of go-ds-crdt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-25.
  • CRDTs Turned Inside Out
    2 projects | news.ycombinator.com | 25 Jan 2024
    I forgot: key-value store using MD-CRDTs was implemented here: https://github.com/ipfs/go-ds-crdt

    The trickiest part was not the CRDT, but the DAG traversal with multiple workers processing parallel updates on multiple branches and switching CRDT-DAG roots as they finish branches.

  • We Put IPFS in Brave
    4 projects | news.ycombinator.com | 24 May 2022
    In https://github.com/ipfs/go-ds-crdt, every node in the Merkle DAG has a "Priority" field. When adding a new head, this is set to (maximum of the priorities of the children)+1.

    Thus, this priority represents the current depth (or height) of the DAG at each node. It is sort of a timestamp and you could use a timestamp, or whatever helps you sort. In the case of concurrent writes, the write with highest priority wins. If we have concurrent writes of same priority, then things are sorted by CID.

    The idea here is that in general, a node that is lagging behind or not syncing would have a dag with less depth, therefore its writes would have less priority when they conflict with writes from others that have built deeper DAGs. But this is after all an implementation choice, and the fact that a DAG is deeper does not mean that the last write on a key happened "later".

  • Making CRDTs Byzantine Fault Tolerant [pdf]
    3 projects | news.ycombinator.com | 4 Mar 2022
    The idea of DAG-embedded CRDTs is far from new and was introduced here:

    https://arxiv.org/abs/2004.00107 (I'm among the authors)

    Unfortunately, the verification that the author proposes (not accepting new updates until the dag below is verified) will need a lot of caveats for real world usage.

    Currently we use these CRDTs for a key value database of 40M+ keys in a deployment of ipfs-cluster, which uses https://github.com/ipfs/go-ds-crdt .

  • Ask HN: P2P Databases?
    3 projects | news.ycombinator.com | 1 Mar 2022
  • Go-ds-CRDT: distributed datastore using Merkle-CRDTs
    1 project | news.ycombinator.com | 28 Oct 2021
  • Conflict-free replicated datatypes solve distributed data consistency challenges
    2 projects | news.ycombinator.com | 28 Oct 2021
  • Data Laced with History: Causal Trees and Operational CRDTs (2018)
    2 projects | news.ycombinator.com | 14 Feb 2021
    Not 100% the thing, but potentially related work in this area:

    https://github.com/ipfs/go-ds-crdt

    (See link to paper, and links to other projects in it, like OrbitDB).

  • A note from our sponsor - InfluxDB
    www.influxdata.com | 26 Apr 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Stats

Basic go-ds-crdt repo stats
7
357
6.1
3 months ago

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com