Skip to content
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

Transaction conflict resolution #503

Open
novoj opened this issue Mar 28, 2024 · 0 comments
Open

Transaction conflict resolution #503

novoj opened this issue Mar 28, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@novoj
Copy link
Collaborator

novoj commented Mar 28, 2024

While we have designed entire transactional systems, this excludes the part where conflicts between multiple concurrent transactions are resolved and potentially conflicting transactions are rolled back. Because we need to test the transactional logic as soon as possible, we have moved the conflict resolution to a separate issue.

We want to have a tunable conflict resolution process. The developer should be able to

  • set a default conflict resolution policy at the catalog level
  • override that conflict policy at the entity collection level
  • Use different conflict policies
    • deny changes in the same entity - all concurrent updates to the same entity will be denied
    • deny changes to the same
      • entity Attribute
      • entity related data
      • entity reference (by name)
      • entity prices
      • entity header

This conflict resolution should only apply to mutations that replace content. The `applyDelta' mutation should be excluded from this logic because it applies the change in a safe way that doesn't conflict with other updates.

@novoj novoj added the enhancement New feature or request label Mar 28, 2024
@novoj novoj added this to the Alpha milestone Mar 28, 2024
@novoj novoj self-assigned this Mar 28, 2024
@novoj novoj modified the milestones: Alpha, Beta Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant