I vote for: “4) Maintain compatibility between all versions within major release”. I think this is a trade-off between the complexity of implementing new features and UX.
We will be able to get rid of all legacy tools every major release. I’m working on a testing framework, which helps us testing compatibility features between different Ignite version. Testing in the early stages will help us to consider the impact of changes in other releases and to be closer to the end user. Here is a dummy unit-test example: void testNodeStartByOldVersionPersistenceData() throws Exception { try { startGrid(1, "2.1.0", new PostConfigurationClosure(), new PostActionClosure()); stopAllGrids(); // Stopping 2.1.0 IgniteEx ignite = startGrid(0); // Starting current version ignite.active(true); IgniteCache<Integer, String> cache = ignite.getOrCreateCache(TEST_CACHE_NAME); for (int i = 0; i < 10; i++) assertEquals("data" + i, cache.get(i)); } finally { stopAllGrids(); } } class PostActionClosure implements IgniteInClosure<Ignite> { @Override public void apply(Ignite ignite) { ignite.active(true); CacheConfiguration<Integer, String> cacheCfg = new CacheConfiguration<>(); IgniteCache<Integer, String> cache = ignite.createCache(cacheCfg); for (int i = 0; i < 10; i++) cache.put(i, "data" + i); } } class PostConfigurationClosure implements IgniteInClosure<IgniteConfiguration> { @Override public void apply(IgniteConfiguration cfg) { // Post configuration actions cfg.setPersistentStoreConfiguration(new PersistentStoreConfiguration()); } } [1] https://issues.apache.org/jira/browse/IGNITE-5732 - Provide API to test compatibility with old releases On Tue, Sep 19, 2017 at 2:51 PM, Yakov Zhdanov <yzhda...@apache.org> wrote: > Vladimir, > > Can you please describe the situation when 2 is possible, but 4 is not? > > --Yakov > -- Best Regards, Vyacheslav D.