Dmitriy, As I understand you use the term "minimalActivationNodes" as a synonym for BaselineTopology concept. In that case I agree with you that we can replace both "establish*" methods with a simple setter method (see below in summary).
Summing up the whole discussion I see the functionality as following: New concept BaselineTopology is introduced. The main features it enables are: 1. automatic activation of cluster; 2. easy management of cluster topology changes (planned nodes maintenance, adding new nodes etc); 3. eliminating of rebalancing traffic on short-term node failures. Use cases to create BLT: 1. user starts up new cluster of desired number of nodes and activates it using existing API. BLT is created with all nodes presented in the cluster at the moment of activation, no API is needed; 2. user prepares BLT using web-console or visor CMD tools and sets it to the cluster. New API setter is needed: Ignite.activation().setBaselineTopology(BaselineTopology blt); 3. user provides via static configuration a list of nodes that are expected to be in the cluster. User starts nodes one by one; when all preconfigured nodes are started cluster is activated and BLT is created. As list of nodes may be huge it is provided via separate file to avoid flooding main configuration. Igniters, does this description match with your understanding of functionality? If it does I'll create a set of tickets and start working on implementation. Thanks, Sergey. On Sat, Aug 19, 2017 at 5:41 PM, Dmitriy Setrakyan <dsetrak...@apache.org> wrote: > I still do not see why anyone would explicitly call these 2 methods: > > *Ignite::activation::establishBaselineTopology();* > *Ignite::activation::establishBaselineTopology(BaselineTopology bltTop);* > > For example, if a web console, or some other admin process, want to > automatically set currently started nodes as the baseline topology, > shouldn't they just call a setter for minimalActivationNodes? > > D. > > On Fri, Aug 18, 2017 at 10:18 AM, Alexey Dmitriev <admitr...@gridgain.com> > wrote: > > > API is proposed in the head of the thread by Sergey, as I understood: > > ______________________________________________________ > > > > API for BaselineTopology manipulation may look like this: > > > > *Ignite::activation::establishBaselineTopology();* > > *Ignite::activation::establishBaselineTopology(BaselineTopology > bltTop);* > > > > Both methods will establish BT and activate cluster once it is > established. > > > > The first one allows user to establish BT using current topology. If any > > changes happen to the topology during establishing process, user will be > > notified and allowed to proceed or abort the procedure. > > > > Second method allows to use some monitoring'n'management tools like > > WebConsole where user can prepare a list of nodes, using them create a BT > > and send to the cluster a command to finally establish it. > > > > From high level BaselineTopology entity contains only collection of > nodes: > > > > *BaselineTopology {* > > * Collection<TopologyNode> nodes;* > > *}* > > > > *TopologyNode* here contains information about node - its consistent id > and > > set of user attributes used to calculate affinity function. > > ____________________________________________ > > > > > > > > -- > > View this message in context: http://apache-ignite- > > developers.2346864.n4.nabble.com/Cluster-auto-activation- > > design-proposal-tp20295p21066.html > > Sent from the Apache Ignite Developers mailing list archive at > Nabble.com. > > >