
Ok, so I’ve moved onto messengers while the codec situation unfolds.

Messengers are easy to model directly from the roadmap.

How to prevent interleaving of concurrent reads and writes, though?

Some options off the top of my head: transaction start/stop primitives, or make messenger read/write calls “atomic.”

@dedbox 1) planning on responding in more detail later, but about codecs: yes this absolutely sounds right, or at the least it’s the right foundation / direction

@dedbox 2) messenger sends and receives will be atomic and not concurrent to a single messenger but I think there’s tricks to let you build multiple messengers that interleave over a lower-level messenger. Also see the “atomic box” implementation in the disposable package and the paper “Kill Safe Synchronization Abstractions”, with the former being a building block abstracting over the latter; that’s how I’m imagining messenger atomicity will be implemented