|
Using behaviors in sal-akka-raft allows us to use simple unit tests for validation of behavior. Unfortunately the data store backed is still governed by direct RaftActor/Shard interactions, which makes isolating behavior-specific code problematic.
Refactor the data store code (Shard et al.) to use Leader/Follower behaviors and redesign RaftActor interface so that the behavior transitions are explicit. The end result should be that when RaftActor performs a behavior change, it will instantiate the new behavior and call up to Shard to wrap it with proper datastore-specific behavior, which it will then use.
|