linksplatform / linksplatform/Data.Doublets
Implement transaction layer that stores all changes in memory
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 14
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
We can implement transaction layer similar to described here: https://neo4j.com/docs/cypher-manual/current/introduction/transactions/
The idea is to store all transitions from source link state to target link state. So if we receive any of source link state we should substitute it with target state in `Each` (read) function. If any of link conflicts with the transition, changing source data or applying different target state at the same location then we should immediately fail the transaction.
After all changes are ready to be applied we acquire write lock, do recheck of all conflicts, if everything is fine we write all changes in a single batch. At the end write lock is released.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing Each read function and the code paths that change source link data, then map how link states and conflicts are currently represented. The transaction layer is done when changes remain in memory, conflicting transitions fail immediately, final conflicts are rechecked under a write lock, and valid changes are written in one batch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100