Sat Feb 16 12:41:57 EST 2019
If a services is just state + state update handlers, why cannot
everything be expressed as a database (or filesystem) + transaction
It probably cam but there is a problem:
A running process is a cache of its instantiation in the sense that it
is linked to other instantiations.
So, while it would be possible to have all references be in a data
structure, where all references are symbolic, it is usually not
However, thinking about state in this way makes it possible to rebuild
the cache at any time.
- instrument obj:call to make changes to back-end storage
- a global namespace is needed for all processes
- alternatively, a simple way to snapshot is needed, mapping
non-serializable processes and ports to instantiation functions.
EDIT: It's actually quite nice to map this to Erlang: always use raw
process references, but monitor them so restart = rebind. This does
need a way to save the state in unbound form.