Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Atomic transactions #50

Open
edufschmidt opened this issue Mar 31, 2021 · 0 comments
Open

Atomic transactions #50

edufschmidt opened this issue Mar 31, 2021 · 0 comments
Labels
critical Critical features, improvements, or bug fixes enhancement New feature or request
Projects

Comments

@edufschmidt
Copy link
Contributor

As of now, the Drago server interacts with the repositories without any consistency guarantee. In other words, failures during the execution of more complex operations involving multiple repositories e.g., joining a network, might result in inconsistencies.

This can be overcome by the introduction of atomic transactions, which ensure that operations either succeed completely or fail completely. Etcd, Drago's storage backend, already offers support to transactions, and the very same client already used in the project (https://pkg.go.dev/go.etcd.io/etcd/clientv3) can be used for implementing this enhancement.

@edufschmidt edufschmidt added the enhancement New feature or request label Mar 31, 2021
@edufschmidt edufschmidt added this to To do in Drago Mar 31, 2021
@edufschmidt edufschmidt added the critical Critical features, improvements, or bug fixes label Aug 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
critical Critical features, improvements, or bug fixes enhancement New feature or request
Projects
Drago
To do
Development

No branches or pull requests

1 participant