Hi,
I am interested in working on barrel-db this summer as a GSOC project. I am currently pursuing a masters in Computer Science at the Technische Universität München. My liking for this project stems up from my previous interest in distributed storage systems. Further, I already have experience with RabbitMQ and other pub-sub/queuing systems such as Kafka, SQS etc. which may help in better design. I have a few questions/ideas about this project that I would like to state.
1. The plugin would not change any requirements for barrel-db itself (as in RabbitMQ does not become a dependency). There should be some external configuration that states the RabbitMQ server (and maybe another config that switches this service and off). When this is provided, all updates (commit logs?) are pushed into this server. The availability and response times of RabbitMQ are entirely the user's responsibility. We could add tests and performance results around this to figure out what the extra call costs. Please correct me if this understanding is incorrect.
2. My current understanding of Erlang is rather elementary. But I do have significant experience with functional languages like Scala and to a lesser extent with Haskell. From what I have been reading in the past few days Erlang's execution model shouldn't be a hard thing to catch up to (probably a couple of weekends). I would like to know if this estimate is too ambitious and if the language is too big of a hindrance for me to participate in this.
3. To get familiar with the codebase and to get up and running with the build-environment I would appreciate it if I could be pointed to some easy (read low-effort) issues that I could help out with. Apart from familiarisation with the code-base, this would also help me write a better design document for the project.
4. Any other pointers/documentation that you would like me to go through is most welcome.
Thank you for your time and looking forward to your replies.
Thanks,
Sohaib