/replikativ

An open, scalable and distributive infrastructure for a data-driven community of applications.

Primary LanguageClojureEclipse Public License 1.0EPL-1.0

replikativ CircleCI Gitter

Project homepage

Roadmap (suggestions)

0.3.0

  • Investigate JS side integration of http://y-js.org/
  • Investigate integration with similar systems, eg. IPFS pubsub
  • Split middleware from replicated datatype implementations
  • Improve network IO library kabel (Android support) [DONE]
  • Move hashing into fetch middleware to simplify parallelization. [DONE]
  • Experimental automatic Gossip protocol
  • Experimental Snapshot Isolation
  • Build reasonable small support libraries to partition application data for efficient client side consumption, Datomic and Datascript. Look into datsync etc.
  • Add a monitoring interface as a cljs library with basic web views for applications to communicate their synching state to the user in a uniform way. [DONE]
  • Introduce clojure.spec to stage/... API.

0.4.0

  • Authentication with signed public-private key signatures
  • Model some level of consistency between CRDTs, probably Snapshot Isolation, to compose CRDTs. (NMSI, Antidote, research)
  • Implement more useful CRDTs (counter, vector-clock, ...) from techreview and other papers and ship by default.

0.5.0

  • Use p2p block distribution similar to BitTorrent for immutable values (similar to blocks)
  • support WebRTC for value distribution similar to BitTorrent
  • Java bindings

Long-term (1.0.0)

  • Encryption of transaction with CRDT key encrypted by userkeys, public key schema, explore pub/private key solutions. Maybe metadata signing can work (slowly) on a DHT?
  • Distribute bandwidth between CRDTs.
  • Negotiate middlewares with versioning.
  • Implement diverse prototypes, from real-time to "big-data".

Contributors

  • Konrad Kuehne
  • Christian Weilbach

Support

If you would like to get some commercial support for replikativ, feel free to contact us at lambdaforge.

License

Copyright © 2013-2018 Christian Weilbach, Konrad Kühne

Distributed under the Eclipse Public License, the same as Clojure.