Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: jathurchan/raftlock

RaftLock v1.0.0

26 Jul 16:59
26fd6f9

Choose a tag to compare

Release v1.0.0

We are thrilled to announce the first official release of RaftLock! 🎉

This release marks a major milestone, delivering a stable, fault-tolerant distributed lock service built from the ground up on the Raft consensus algorithm. v1.0.0 provides a robust foundation for coordinating distributed applications with a simple gRPC API, a Go client library, and easy-to-use Docker support for deploying a multi-node cluster.

✨ Key Highlights

  • Raft Consensus Implementation: A complete implementation of the Raft consensus algorithm to ensure fault tolerance and data consistency.
  • gRPC API & Go Client: A clear, efficient API for acquiring and releasing locks (raftlock.proto), with a ready-to-use Go client for seamless integration.
  • Persistent Storage Layer: A durable storage engine to maintain state across node restarts.
  • Docker & docker-compose Support: Easily run a multi-node raftlock cluster in a containerized environment.
  • Comprehensive Test Suite: High test coverage, including unit tests, integration tests, a linter, and a formatter to ensure code quality and reliability.

✅ What's Changed

Features 🚀

  • Implemented the core Raft consensus algorithm by @jathurchan in #37
  • Built the persistent storage layer for durability by @jathurchan in #33
  • Defined the raftlock.proto gRPC API and implemented the RaftLockServer by @jathurchan in #62, #71
  • Implemented the core LockManager for handling lock state by @jathurchan in #50
  • Implemented the RaftLockClient for easy integration with your Go applications by @jathurchan in #89
  • Created the main application entry point for the RaftLock server by @jathurchan in #102
  • Added Docker and docker-compose support for running a multi-node cluster by @jathurchan in #7, #116
  • Added a payment processor example to demonstrate usage by @jathurchan in #120

Bug Fixes & Improvements 🐛

  • Fixed critical race conditions to improve stability by @jathurchan in #96
  • Fixed logger context fields (WithNodeID, WithTerm) by @jathurchan in #41
  • Separated Raft peer and client API addresses for improved network configuration by @jathurchan in #114
  • Corrected the CommandReplication integration test by @jathurchan in #111
  • Fixed several miscellaneous bugs to improve reliability by @jathurchan in #129

Tooling & Testing 🛠️

Documentation & Legal 📚

❤️ Contributors

This release would not have been possible without the hard work and dedication of our team. A huge thank you to:

  • @jathurchan (Jathurchan Selvakumar) for leading the development, implementing the core architecture, and bringing the project to life.
  • @Patrice-Zhou (Patrice Zhou) for major contributions to testing, code quality, and tooling.
  • @mathusanm6 for his consistent and invaluable feedback, code reviews, and guidance throughout the development process.

Full Changelog: https://github.com/jathurchan/raftlock/commits/v1.0.0