feat(local): decide local stays app territory
Define local/offline truth as commands, domain events, and projections rather than stored DOM patches or EffectBatch payloads; wire the techdemo through a local command-to-projection-to-effect flow; document that hemx-local is not a crate until reusable semantics are proven. req: local/001 req: local/002 req: local/003 req: local/004 req: examples/001
This commit is contained in:
@@ -5,6 +5,22 @@ sync framework. The local artifact is an app-owned command/event log plus a
|
||||
projection; hemx effects are rendered output, not stored truth. req: local/001
|
||||
req: local/002
|
||||
|
||||
## Decision: no `hemx-local` crate yet
|
||||
|
||||
`hemx local` remains an app/recipe pattern for now, not a reusable hemx layer.
|
||||
The host capability path proves that thin typed contracts work when the shared
|
||||
semantics are obvious: manifest, call, event, and host-check failure. The local
|
||||
exemplar proves a safer boundary for offline work: command, domain event,
|
||||
projection, then `EffectBatch`. It does not yet prove common storage,
|
||||
reconciliation, export, deletion, or conflict semantics across apps, so a crate
|
||||
would freeze product policy too early. req: local/002 req: local/003 req:
|
||||
local/004
|
||||
|
||||
A future reusable layer must first prove at least two independent apps share the
|
||||
same command-log contract without sharing domain policy, storage provider, sync
|
||||
provider, or conflict rules. Until then, recipes and app-owned integrations are
|
||||
more honest and easier to delete. req: local/002 req: local/003
|
||||
|
||||
## Shape
|
||||
|
||||
```text
|
||||
|
||||
Reference in New Issue
Block a user