Skip to content

Commit

Permalink
feat(Mutations): Idempotent Resume (#854)
Browse files Browse the repository at this point in the history
Refactor Storage:
- Rename Mutation Lock to Mutation Commitment
- Introduce Mutation Index to describe what items of a Branch Key have been mutated
- Add Input field to Mutation Commitment
- Add Ciphertext field to Mutation Commitment
- When Mutating an item, always write with an optimistic lock
- Allow Initialize Mutation to over write a Version, instead of only creating a version
- When Overwriting a Mutation Index, ensure it has not changed
- Whenever writing for Mutation, ensure the Mutation Commitment's ENC is as expected (along with original and terminal)

Refactor Storage to contain operations that:
1. Allow for Atomic Mutations (maybe cut later)
2. Allow for Deleting a Mutation
3. Allow for Creating a Mutation Index

Refactor KeyStoreAdmin:
- Support a System Key for Mutations
- Stub out the System Key
- Logic for handling Mutation Index

Refactor Initialize Mutation:
- If Commitment & Index already exist and match Input, write nothing and return token
- If Commitment already exists and matches input, write index, and return token
- If Commitment already exists and does not match input, fail
- If no commitment, Initialize Mutation

Refactor Apply Mutation:
- Write an update Page Index.
  • Loading branch information
texastony committed Nov 15, 2024
1 parent 1078ec3 commit d81be47
Show file tree
Hide file tree
Showing 132 changed files with 10,358 additions and 3,475 deletions.

This file was deleted.

Large diffs are not rendered by default.

Loading

0 comments on commit d81be47

Please sign in to comment.