Skip to content
This repository was archived by the owner on Feb 5, 2020. It is now read-only.

Project: Barrel

Benoit Chesneau edited this page Mar 6, 2018 · 18 revisions
  • Website: https://barrel-db.org/
  • Possible mentors: Benoit Chesneau
  • If you have any questions, send an e-mail to beam-community AT googlegroups DOT com

Barrel is a modern document-oriented database in Erlang focusing on data locality (put/match the data next to you) and P2P. Ideas are listed in no particular order. Students providing their own ideas are also welcome!

Idea #1: Build an Elixir binding

Provide a way to manage a barrel database via the Elixir. The binding should offer a "native" experience to the Elixir user.

Expected Result : an elixir library with its tests

Knowledge prerequisites: Knowledge of Elixir

Possible Mentors: Benoit Chesneau

Idea #2: Improved documentation for Barrel

Help us document Barrel and provides some example of uses-cases to our users.

Expected results: Documentation: Uses-cases and their examples

Knowledge prerequisites: Erlang

Possible Mentors: Benoit Chesneau

Idea #3: Add quickcheck testing

QuickCheck is a library for random testing of program properties. Testing automatically barrel using quickcheck would help to improve its code quality.

Expected results: automates the testing of the barrel code.

Knowledge prerequisites: A knowledge or Erlang is required. A license of Quickcheck will be available.

Possible Mentors: Benoit Chesneau

Idea #4: add windows support.

Provides a way to build a Barrel database node for supported Windows platforms.

Expected results: being able to use Barrel on windows.

Knowledge prerequisites: windows build, erlang build using rebar 3.

Possible Mentors: Benoit Chesneau

Idea #5: add A GraphQL API to barrel

Barrel can be queried using an RPC api but some users would prefer to use GraphQL to easily access and handle the data.

Expected result: design a GraphQL API and a prototype showing its usage.

Knowledge prerequisites: A knowledge or Erlang is required. Also have a look to graphql-erlang

Idea #6: Use RabbitMQ to handle the replication between remote Node

Barrel handle by defaults the replication using full TCP or using a websockets. The idea is to dp the replication over RabbitMQ.

Expected result: design the protocol used, choose a library to talk with RabbitMQ and build a prototype with a limited test coverage.

Knowledge prerequisites: A knowledge or Erlang is required.

Possible Mentors: Benoit Chesneau

Clone this wiki locally