Releases: jathurchan/raftlock
Releases · jathurchan/raftlock
RaftLock v1.0.0
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-composeSupport: Easily run a multi-noderaftlockcluster 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.protogRPC API and implemented theRaftLockServerby @jathurchan in #62, #71 - Implemented the core
LockManagerfor handling lock state by @jathurchan in #50 - Implemented the
RaftLockClientfor easy integration with your Go applications by @jathurchan in #89 - Created the main application entry point for the
RaftLockserver by @jathurchan in #102 - Added Docker and
docker-composesupport 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
CommandReplicationintegration test by @jathurchan in #111 - Fixed several miscellaneous bugs to improve reliability by @jathurchan in #129
Tooling & Testing 🛠️
- Added a linter and code formatter (
golines) to the CI pipeline by @Patrice-Zhou in #93 and @jathurchan in #104 - Implemented a comprehensive suite of Raft integration tests by @jathurchan in #107
- Significantly improved test coverage across the codebase by @Patrice-Zhou in #45 and @jathurchan in #64
- Fixed CI configuration and test coverage reports by @jathurchan in #56, #58, #65, #130, #131, #132
Documentation & Legal 📚
- Added
README.mdfiles for theraftandstoragepackages by @jathurchan in #69, #74 - Added the MIT License to the project by @jathurchan in #92
- Finalized documentation and code in preparation for
v1.0.0by @jathurchan in #136
❤️ 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