Skip to content

PierreZ/fdb-etcd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

74dc23d Â· Jun 27, 2021

History

76 Commits
Apr 11, 2020
Nov 15, 2020
May 5, 2021
Jun 27, 2021
Mar 21, 2020
Mar 27, 2020
Mar 21, 2020
Jun 27, 2021
May 5, 2021
Apr 18, 2020
May 5, 2021
May 5, 2021
Mar 21, 2020

Repository files navigation

fdb-etcd https://img.shields.io/badge/vert.x-4.0.3-purple.svg gradle build

An experiment to provide ETCD layer on top of FoundationDB, built with Record-Layer and Vert.x.

Features

  • etcd protobuf was imported and exposed with Vert.x,
  • Record-layer is used. As etcd is also using protobuf, we are directly storing the KeyValue message,
  • Integrations test using a real FDB spawned with testcontainers and official Java etcd client,
  • Tests are backported from jetcd test cases
  • Supported operations:
    • put,
    • get,
    • scan,
    • delete,
    • compact,
    • leases,
    • watches,
  • ETCD MVCC simulated using FDB's read version
  • multi-tenancy (soon back by the AuthService)

For TODO's, please have a look to the Github issues.

Building

Requirements

Gradle cheat-sheet

To launch your tests:

./gradlew clean test

To package your application:

./gradlew clean assemble

To run your application:

./gradlew clean run

Test it

# deploy your fdb cluster, or use docker
docker run -d --name fdb -p 4500:4500 foundationdb/foundationdb:6.2.19
# init fdb
docker exec fdb fdbcli --exec "configure new single memory"
# wait until it is ready
docker exec fdb fdbcli --exec "status"

# generate cluster file
echo "docker:docker@127.0.0.1:4500" > fdb.cluster

# retrieve latest version
wget https://github.com/PierreZ/fdb-etcd/releases/download/v0.0.1/fdb-etcd-v0.0.1-SNAPSHOT-fat.jar

# retrieve config file example, don't forget to edit it if necessary
wget https://raw.githubusercontent.com/PierreZ/fdb-etcd/master/config.json

# run fat jar
java -jar fdb-etcd-v0.0.1-SNAPSHOT-fat.jar -conf ./config.json

Contributing

Pull requests are very welcome. I will try to keep as Github issues what needs to be done if you want to jump in!

For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Resources

vert.x

Record-layer

About

ETCD layer on top of FoundationDB

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages