Gotcha. That makes more sense.
Yes, there are a couple of changes being made with respect to Atomix 2.1:
• In-memory primary-backup primitives will be supported, and eventually strong consistency algorithms (CRDTs) can be used for cluster membership, primary elections, epochs (distributed counters), etc. This allows for an ONOS cluster that doesn’t use consensus at all, but it will still be highly discouraged
• Instead, the goal is to also separate the consensus layer from ONOS core. So, ONOS will be able to connect to an external Atomix cluster of consensus nodes, allowing the ONOS controller to again practically scale to much smaller and larger numbers of nodes without losing current consistency guarantees
• In practice, both types of clusters will be supported since the peer-to-peer protocol may simplify development workflows.
But to be clear, the upgrade to Atomix 2.1 is not a trivial task. Even within the context of the current usage of Atomix, we need to rewrite StoragePartitionServer and StoragePartitionClient to use the generic protocol interfaces, and update all the Atomix primitives and state machines to use the generic primitive interfaces as well. These changes are necessary to make them useable with either protocol (Raft or primary-backup).
But ultimately, Atomix 2.1 should replace the vast majority of the primitive code in ONOS. The only things that will have to be kept are the wrapper interfaces/classes for backwards compatibility. Eventually, Atomix will provide for all primitives, messaging, events, cluster management, upgrade management, etc so most of the distributed systems code no longer has to be maintained within ONOS.
The timeline for this refactoring is still about a month away. It will likely start next week, but will take a few more weeks to get to a stable release of Atomix that can safely support the primitive changes.