...
Some of the modules (mainly, integration components and thin clients) can be isolated into separate projects with independent lifecycles.
Ignite 3.0 is a major release, which gives us a unique opportunity to make incompatible changes. This can be used to do a cleanup and remove deprecated APIs and features. Additionally, all APIs should be revisited from this point of view – anything that is not relevant anymore should be removed from the project; some APIs can be reworked and modernized.
TBD: full list of removals.
GraalVM is gaining a lot of popularity, especially in the context of serverless environments and frameworks like Micronaut and Quarkus. Currently, even Ignite thin client blocks software from being built into a native GraalVM image – this needs to be fixed. Preferably, we should support this for thick clients as well, although this is a lower priority and might require much bigger effort.
Ignite 3.0 is a major release, which gives us a unique opportunity to make incompatible changes. This can be used to do a cleanup and remove deprecated APIs and features.
...
Additionally, all APIs should be revisited from this point of view – anything that is not relevant anymore should be removed from the project; some APIs can be reworked and modernized.
List of proposed removals (WIP):
*Resource
annotations except for the IgniteInstanceResource
CacheRebalanceMode
and rebalance delay - should always work in the ASYNC
mode (current default)IgniteFuture
with Java's CompletableFuture