Mikhail Efremov created IGNITE-23974:
----------------------------------------
Summary: Remove Replica#raftClient from the interface
Key: IGNITE-23974
URL: https://issues.apache.org/jira/browse/IGNITE-23974
Project: Ignite
Issue Type: Improvement
Reporter: Mikhail Efremov
*Description*
The major expected result of the IGNITE-22313 is to encapsulate all
RAFT-related code under the replication layer. The {{Replica#raftClient}} is
the most last snippet outside replication layer that gives an access to RAFT.
We can't remove it completely for now because it uses in {{PartitionMover}},
but from a design point of view the last class should be deleted: it's logic
serves only for retries on a rebalance error handling in
{{RebalanceRaftGroupEventsListener#onReconfigurationError}}. Moreover all this
logic we may move into the listener itself, because it doesnt' need a replica,
only a raft client for {{changePeersAndLearnersAsync}} call retries. And
further the whole listener may be moved under replication layer too as
IGNITE-22313 implies.
But the refactoring demands a proper design to implement. The ticket should be
a part of the corresponding activity.
*Motivation*
As IGNITE-22313 meant, we want to encapsulate all RAFT-related code under the
replication layer completely.
*Definition of Done*
* {{Replica#raftClient}} is removed from the interface.
* {{@TestOnly}} method may be still saved in the certain implementation of
{{Replica}} only.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)