Jepsen tests for @replit/river
- relies on docker + a bit of perl + bash for setup
make tests
seeing results
make results
- rpc set(k,v) -> v
- subscribe val(k) -> updates to v | err if k does not exist
- stream echo(s) -> s
- stream echo_prefix(init: prefix, s) -> prefix + s
- upload send(part) -> total str after EOF received
- all clients should have their own transport client id describing itself (e.g.
bun-client
) - should listen on stdio for instructions
simplified instruction DSL
- id is generated per rpc to distinguish responses
- inputs are
id -- svc proc -> ...args
- outputs are
id -- ok:resp | err:code
# kv
id -- kv set -> k v
id -- kv subscribe -> k
# echo
id -- repeat echo -> s
id -- repeat echo_prefix -> prefix
# upload
id -- upload send ->
# meta
id -- -> s (push to existing stream id)
- always assume transport client id is
SERVER
TODO