IDIEP-144
Author
Sponsor
Created 20.02.2026
Status


Motivation

Ignite provide many ways to execute user provided code:

Currently, Ignite provides several ways to load user-provided code:

However, all this ways lack several crucial features:

We must reinvent the way Ignite loads user classes to fill the gap. 

Description

It proposed to add new entity to Ignite - IgniteClassPath.

IgniteClassPath properties:

API changes (list will be widen):

Required tools:

Examples:



Other systems approach:

Apache Spark

Provides a special tool - spark-submit  to deploy and execute jobs inside cluster.
It supports --jars argument to list jar files required by job. (1)

Apache Tomcat (2)

J2EE spec itself provide a clear way to:

Apache Flink (3) (4)

Provides an options to specify job classpath during starttime.

Example: 

$ ./bin/flink run -C /path/to/dependency.jar -c com.example.MyJob my-flink-job.jar

Risks and Assumptions

We assume that p2p and deployment SPI will be removed from Ignite.

Users may want to recompile and refresh classes without changing (remove, create) existing IgniteClassPath during development or hotfix.
Currently, we don't have plans to support this kind of scenario.

Discussion Links

// Links to discussions on the devlist, if applicable.

Reference Links

  1. https://spark.apache.org/docs/latest/submitting-applications.html
  2. https://tomcat.apache.org/tomcat-11.0-doc/deployer-howto.html
  3. https://nightlies.apache.org/flink/flink-docs-stable/docs/ops/debugging/debugging_classloading/
  4. https://nightlies.apache.org/flink/flink-docs-release-2.2/docs/ops/rest_api/

Tickets

// Links or report with relevant JIRA tickets.