Extend the UtilityUnitOfWork logic so that it transparently works like an ephemeral "WorldState" that becomes valid/persisted only when it's committed successfully. Until then, all changes are tracked, and applied in memory but NOT persisted.
Origin Document
562
Goals
Obtain a PersistenceReadContext
Implement PersistenceWriteContext but track changes in memory instead of targeting the datastores
Implement Commit logic that flushes the changes correctly to the real Persistence layer
Deliverable
[ ] A PR with implementation tending to the goals above
[ ] Deterministic unit tests to verify the logic above
Non-goals / Non-deliverables
Implement a simple Rollback that throws away all the ephemeral state (tracked in #435)
General issue deliverables
[ ] Update the appropriate CHANGELOG(s)
[ ] Update any relevant local/global README(s)
[ ] Update relevant source code tree explanations
[ ] Add or update any relevant or supporting mermaid diagrams
Testing Methodology
[ ] Task specific tests or benchmarks: make ...
[ ] New tests or benchmarks: make ...
[ ] All tests: make test_all
[ ] LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md
Objective
Extend the
UtilityUnitOfWork
logic so that it transparently works like an ephemeral "WorldState" that becomes valid/persisted only when it's committed successfully. Until then, all changes are tracked, and applied in memory but NOT persisted.Origin Document
562
Goals
PersistenceReadContext
PersistenceWriteContext
but track changes in memory instead of targeting the datastoresCommit
logic that flushes the changes correctly to the realPersistence
layerDeliverable
Non-goals / Non-deliverables
Rollback
that throws away all the ephemeral state (tracked in #435)General issue deliverables
Testing Methodology
make ...
make ...
make test_all
LocalNet
is still functioning correctly by following the instructions at docs/development/README.mdCreator: @deblasis Co-Owners: @Olshansk