This commit integrates the distributed data store with our Raft implementation.
Shard now extends RaftActor which provides it the replication capabilities required.
Other notable changes are,
- The FindPrimary algorithm has been changed to find the first replica for a shard.
The shard then forwards requests to create a transaction or transaction chain to
the leader
- Changed the package name for Raft internal messages from "internal" to "base" to be
more BND tool friendly
- Fix some issues with Serialization of Raft messages
- Create a NoOpTransaction when no Primary can be found. The commit for this transaction
will always fail. The NoOpTransaction returns absent for reads in all cases.
- Add PeerAddressResolution capability to Raft. What this basically does is given a static
configuration where a shard has 'n' peers, you can pass the names of those peers
to the shard and resolve their addresses at a later time. This allows the Shard to ensure
consensus even in a situation where it is the first one to come up but it's peers are still
not running
Change-Id: I3087deb5eb4418cd629a707ba14f43858db1f463
Signed-off-by: Moiz Raja <moraja@cisco.com>