A crdt.Set / crdt.Seq matches the splice-stream idea.
We should have some way to turn a Set and a Seq into a splice stream. splice streams are to array as delta streams are to object.
@dominictarr We can look at this problem differently.
A crdt Set / Seq can still have unique ids for each object and a _sort property or a sort key or whatever.
We can then represent a Set / Seq as a splice stream for emitting local changes on the Set/Seq and for sending local changes back to the Set/Seq.
Then we can send those changes over the wire properly in the crdt format.
We are never sending splice streams directly over the wire.
But if you have a better suggestion for a List stream feel free to make one.
@dominictarr yes. I mainly want to use splice-stream & delta-stream for turning GUI elements into streams
@dominictarr splice-stream is broken as hell. It doesn't work even in a single process and is completely broken cross process.
I will deprecate it and create list-stream which is a scuttlebutt representation of an array which uses numeric keys from 0 to 1 (using between) and pretends the object is an array.
Eventaully crdt.Set and crdt.Seq will be based on list like abstractions