vmware-archive / haret

A strongly consistent distributed coordination system, built using proven protocols & implemented in Rust.
461 stars 18 forks source link

Remove side effects from FSMs by returning output #46

Closed andrewjstone closed 8 years ago

andrewjstone commented 8 years ago

No longer communicate between fsms and the outside world via channels. Instead have the FSMs return envelopes containing messages in need of sending. This enables much easier testing, and removes a bunch of code clutter due to excess channel handling.

Rename a bunch of functions and states in vr_fsm.rs to be more clear.

Rename Fuzzer to Distill - Make the Distill a new external crate. It was never really a fuzzer, but more of a generative, deterministic tester with shrinking. Change the rest of the code to use Distill.

Tests use a Scheduler instead of a Dispatcher to manage nodes. The scheduler is only intended to manage a single replica group (tenant) for a given test. The aformentioned scheduler is also used by the debugger instead of the dispatcher to load and run replicas.