Coder Social home page Coder Social logo

electric-sql / vaxine Goto Github PK

View Code? Open in Web Editor NEW
116.0 13.0 2.0 18.82 MB

Rich-CRDT database based on AntidoteDB.

Home Page: https://electric-sql.com/docs

License: Apache License 2.0

Erlang 95.92% Makefile 0.27% Shell 0.09% Elixir 3.72%
crdts database distributed-systems replication

vaxine's Introduction

Erlang CI Coverage Status License - Apache 2.0 Status - Alpha

Vaxine

Welcome to the Vaxine source code repository. Vaxine is a rich-CRDT database system based on AntidoteDB. It's used as the core replication layer for ElectricSQL.

About Antidote

AntidoteDB is a planet scale, highly available, transactional database. Antidote implements the Cure protocol of transactional causal+ consistency based on CRDTs.

More information:

Antidote is the reference platform of the SyncFree and the LightKone european projects.

Contributing

See the Community Guidelines including the Guide to Contributing and Contributor License Agreement.

Support

We have an open community Discord. If you’re interested in the project, please come and say hello and let us know if you have any questions or need any help or support getting things running.

vaxine's People

Contributors

albsch avatar aletomsic avatar angbrav avatar balegas avatar bieniusa avatar cmeiklejohn avatar dajenet avatar deepthidevaki avatar define-null avatar eipifi avatar ergl avatar fairplayer4 avatar icehaunter avatar itoumlilt avatar kianmeng avatar liaud avatar lplit avatar lythq avatar marsleezm avatar mweberaw avatar mweberukl avatar palash25 avatar peterzeller avatar rogerpueyo avatar santialvarezcolombo avatar tcrain avatar thruflo avatar v0idpwn avatar vitorenesduarte avatar zachdaniel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

forkkit kianmeng

vaxine's Issues

Relationships with referential integrity

N.b.: requires design / spec.

We want to be able to provide relationships with referential integrity. This can be implemented using the touch + add-wins semantics outlined in the IPA paper. In addition, it may be necessary to use a escrow-transfers mechanism for some exclusive access.

In addition, we need to design/specify:

  • how relationships will be configured for one-one, one-many, many-one and many-many using the Vat library and how this should map to underlying types
  • what operations we provide on the relationship and whether we support cascading deletes

Secondary indexes

At the moment, we are a KV store with primary indexes. We want users to be able to efficiently query on multiple fiuelds. This presents a challenge to have consistent secondary indexes -- related to materialisation cost etc.

Strong consistency

The idea is to merge the best of the strong consistency implementations on the current feature branches.

TBC: to what degree is this required with the rich-CRDT approach?

Checkpointing

Finish / merge the refactoring and log compaction work.

TODO: flesh out this description / spec.

ginkgo ETS cache

refactor AntidoteDB/antidote#463

  • flatten git commits
  • align with existing code by cleaning up spaces/function names/reformatting & linting
  • add some documentation and background info
  • ensure existing tests pass
  • document remaining issues after this point

Large objects

Currently, querying the contents of large objects (maps, sets) copies the whole object (e.g.: the whole set) to the client to read one of the members.

We need a strategy to resolve this, as discussed in the Paris workshop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.