just use seperate transaction handlers

This commit is contained in:
2026-02-16 01:04:52 -05:00
parent ffd3eda63c
commit cd4ee1cbd7
4 changed files with 1334 additions and 5 deletions

13
TODO.md
View File

@@ -53,7 +53,8 @@ Goal: "aws cli works reliably for CreateTable/ListTables/PutItem/GetItem/DeleteI
### 5) UpdateItem / conditional logic groundwork
- [x] `UpdateItem` handler registered in router (currently returns clear "not yet supported" error)
- [x] Implement `UpdateItem` (initially minimal: SET for scalar attrs)
- [ ] `UpdateItem` needs UPDATED_NEW/UPDATED_OLD response filtering for perfect parity with Dynamo
- [x] `UpdateItem` needs UPDATED_NEW/UPDATED_OLD response filtering for perfect parity with Dynamo
- **DONE**: `filter_updated_attributes` extracts modified paths from `Update_Plan` and filters the response item to only include those attributes. `get_update_plan_modified_paths` + `filter_item_to_paths` in `transact.odin`.
- [x] Add `ConditionExpression` support for Put/Delete/Update (start with simple comparisons)
- [x] Define internal "update plan" representation (parsed ops → applied mutations)
@@ -83,7 +84,13 @@ These align with the "Future Enhancements" list in ARCHITECTURE.md.
### 9) Batch + transactions
- [x] BatchWriteItem
- [x] BatchGetItem
- [ ] Transactions (TransactWriteItems / TransactGetItems)
- [x] Transactions (TransactWriteItems / TransactGetItems)
- **DONE**: `transact.odin` implements all-or-nothing semantics:
- Put, Delete, Update, ConditionCheck action types
- Pre-flight condition evaluation (all conditions checked before any mutation)
- Deterministic table lock ordering to prevent deadlocks
- `transact_handlers.odin` contains HTTP handlers and JSON parsing
- TransactGetItems supports ProjectionExpression per item
### 10) Performance / ops
- [ ] Connection reuse / keep-alive tuning
@@ -105,4 +112,4 @@ These align with the "Future Enhancements" list in ARCHITECTURE.md.
- [x] Fix TODO hygiene: keep this file short and "actionable"
- Added "Bug Fixes Applied" section documenting what changed and why
- [ ] Add a CONTRIBUTING quick checklist (allocator rules, formatting, tests)
- [ ] Add "known limitations" section in README (unsupported DynamoDB features)
- [ ] Add "known limitations" section in README (unsupported DynamoDB features)