-
Notifications
You must be signed in to change notification settings - Fork 0
Add DynamoDB backend implementation #100
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #100 +/- ##
============================================
- Coverage 44.49% 38.75% -5.75%
- Complexity 132 136 +4
============================================
Files 28 31 +3
Lines 863 1027 +164
Branches 105 112 +7
============================================
+ Hits 384 398 +14
- Misses 452 600 +148
- Partials 27 29 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Copilot
AI
changed the title
[WIP] Add new database engine support for AWS DynamoDB
Add DynamoDB backend implementation
Jan 28, 2026
Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
… and fix Javadoc Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
…db-update-logic Rewrite DynamoDB lock service with atomic conditional expressions
…ing pattern Co-authored-by: JaredHatfield <208119+JaredHatfield@users.noreply.github.com>
…-logging-method Remove log.debug() from DynamoDbLockService to follow canonical logging convention
…mentation and updating JSON comparison mode in APILockServiceTest
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements AWS DynamoDB as a distributed lock backend, following the established patterns from Firestore and Etcd implementations.
Implementation
Module Structure
locker-dynamodb/- New module with standard Maven structureDynamoDbLockService- LockService implementation using AWS SDK v2LockerAwsDynamoDbConfig- Spring bean configurationLockerAwsDynamoDbClientConfig- DynamoDB client setup with credential chain supportLock Operations
PutItemwithattribute_not_existscheckexpiryfield for automatic cleanupConfiguration
Lock Item Schema
Project Updates
dynamodbMaven profile to root pom.xmllocker-dynamodbtoeverythingprofileTesting
DynamoDbLockServiceActualTestextendsAbstractLockServiceTest(disabled, for manual testing with DynamoDB Local)Original prompt
Start implementation
[Chronological Review: The conversation began with the user requesting assistance in crafting business and technical requirements for adding a new database engine (AWS DynamoDB) to the LockServiceCentral repository. The user outlined specific requirements, including the need for conditional write transactions, automatic expiration of locks, environment variable configuration, and logging integration. The user also mentioned updating relevant documentation and ensuring testing coverage. The user then requested to start the implementation, indicating readiness to proceed with the development phase.][Intent Mapping:
[Technical Inventory:
[Code Archaeology:
[Progress Assessment:
[Context Validation: All critical information for continuation is captured, including specific requirements for the DynamoDB implementation and the need to follow existing conventions.]
[Recent Commands Analysis:
1. Conversation Overview: - Primary Objectives: User requested help to "craft the business / technical requirements" for adding AWS DynamoDB to the LockServiceCentral repository, ensuring it follows existing conventions and integrates seamlessly. - Session Context: The conversation flowed from requirement gathering to readiness for implementation, with a focus on technical specifications and documentation needs. - User Intent Evolution: The user initially sought detailed requirements and then shifted to initiating the implementation phase.- Technical Foundation:
- AWS DynamoDB: A NoSQL database service that will be integrated as a new module.
- Logging Library: Used for structured logging throughout the repository.
- GitHub Actions: For CI/CD processes, specifically the matrix build for Docker images.
- Codebase Status:
- README.md:
- Purpose: Document the new DynamoDB module and its configuration.
- Current State: Needs updates to reflect the new implementation.
- .github/workflows/docker-build-dev.yml:
- Purpose: Manage CI/CD for different database implementations.
- Current State: Requires addition of the DynamoDB module to the build matrix.
- Problem Resolution:
- Issues Encountered: None documented yet; focus is on requirements and implementation.
- Solutions Implemented: None yet; requirements are being defined.
- Debugging Context: Not applicable at this stage.
- Lessons Learned: Importance of following existing conventions and ensuring proper documentation.
- Progress Tracking:
- Completed Tasks: Requirements for the DynamoDB module have been articulated.
- Partially Complete Work: Implementation of the DynamoDB module is pending.
- Validated Outcomes: None yet, as implementation has not started.
- Active Work State:
- Current Focus: Transitioning from requirements gathering to implementation of the DynamoDB module.
- Recent Context: User requested to "Start implementation," indicating readiness to proceed.
- Working Code: No specific code snippets discussed yet.
- Immediate Context: Preparing to implement the new DynamoDB module based on defined requirements.
- Recent Operations:
- Last Agent Commands: User requested to "Start implementation."
- Tool Results Summary: No specific tool results were generated from this command.
- Pre-Summary State: The agent was preparing...
Created from VS Code.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.