forked from jappel/leistungsbilanz-ts
Add serializable project commands
This commit is contained in:
parent
903d977443
commit
b79faed320
9 changed files with 206 additions and 39 deletions
|
|
@ -140,6 +140,11 @@ Completed foundation:
|
|||
- projects carry a monotonic `currentRevision` counter starting at zero
|
||||
- project revision metadata and versioned forward/inverse change-set payloads
|
||||
have separate persistence entities
|
||||
- forward and inverse payloads store complete serialized command envelopes;
|
||||
command type and schema version are derived from those envelopes rather than
|
||||
duplicated caller metadata
|
||||
- command serialization rejects non-finite numbers, `undefined`, non-plain
|
||||
objects and cyclic payloads before a revision transaction starts
|
||||
- the SQLite revision repository advances the project counter and stores both
|
||||
history records atomically
|
||||
- revision appends use an expected-revision compare-and-set and reject stale
|
||||
|
|
@ -147,7 +152,8 @@ Completed foundation:
|
|||
|
||||
Remaining constraints before implementing history:
|
||||
|
||||
- model project-scoped command descriptions independently from React callbacks
|
||||
- define concrete project-scoped command unions and executors independently
|
||||
from React callbacks; the generic versioned command envelope is complete
|
||||
- route domain writes and revision recording through one shared project
|
||||
transaction boundary; the current revision repository only commits history
|
||||
records and the counter together
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue