## Delta Changes design
### Current
---
#### Example data package
![](https://hackmd.io/_uploads/S1ux2KzWT.png =400x400)
---
---
#### Bagit-Tree representation
![](https://hackmd.io/_uploads/SkK51izWa.png)
---
---
### Differential Versioning
- Instead of creating entirely new data packages for each version, implement a differential versioning system. This system would only store the changes made between versions, rather than duplicating all files.
- Each version would be a set of "deltas" or changes from the previous version. This approach significantly reduces storage requirements and indexing complexity.
---
---
### Use Cases
---
#### UC01: Replacing file in a data package
![](https://hackmd.io/_uploads/ByAXYqGb6.png)
---
---
##### Compare
![](https://hackmd.io/_uploads/Sy5hu9M-p.png =300x400)
---
---
#### UC02: Editing metadata
![](https://hackmd.io/_uploads/BJUodqGWp.png)
---
---
##### Compare
![](https://hackmd.io/_uploads/BkSgYcfbp.png =300x400)
---
---
##### Observations
- First version ORE
- Metadata changes - reindex all documents relations
- two way pointers
- Inefficient for n/2 replacements
---