| ID | IEP-144 |
| Author | |
| Sponsor |
|
| Created | 20.02.2026 |
| Status | |

Motivation
Ignite provide many ways to execute user provided code:
- Compute jobs.
- Services.
- SQL UDF.
- CacheInterceptors
- Query filters
- etc.
Currently, Ignite provides several ways to load user-provided code:
- add user jars to Ignite server node classpath.
- Configure
DeploymentSpi implementation via IgniteConfiguration#setDeploymentSpi, IgniteConfiguration#setDeploymentMode.
Monitored by GridDeploymentInfo, UriDeploymentSpiMBean, LocalDeploymentSpiMBean. - Add dependencies to client node and enable peer to peer class loading.
However, all this ways lack several crucial features:
- Clear way to know which classes loaded from which nodes.
It expected that all classes will be the same on all nodes, which is not alway true. - Tools to view jars available.
- Clear way to update user jars.
- Having several versions of user jars: blue-green, canary deployments.
- Remove classes from Ignite process.
- Restrictions (security) for client nodes to provide classes.
In real world cases not all client nodes can be treated as trusted
so in many production cluster p2p class loading disabled and forbidden to enable.
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:
- Name - unique string identifier (app_v1, 01_07_2025, etc).
- Set of libs and resources associated with IgniteClassPath.
- Each instance available on each Ignite node, maybe on demand.
- Can be created and removed runtime - without any restarts.
- Instances independent from each other.
API changes (list will be widen):
IgniteCache#withClassPathIgniteCompute#withClassPathServiceConfiguration#setClassPath- JDBC driver params to point to classpath used by UDFs and other things during queries execution.
Deprecation and removal of DeploymentSpi and related configuration properties.
Deprecation and removal p2p class loading and related configuration properties.- New security permission to restrict creation/deletion of
IgniteClassPath for specific users.
Required tools:
- control.sh command to create/remove/list resources.
- control.sh command to register class path from server node resource.
In strict environments it often prohibited for process to modify it's code (jars).
So, regular flow with the "Ignite, please deploy files from the local disk to cluster" not working.
We must provide a way to register and validate IgniteClassPath from server node local disks. - system view to list available instances.
Risks and Assumptions
We assume that p2p and deployment SPI will be removed from Ignite.
Discussion Links
// Links to discussions on the devlist, if applicable.
Reference Links
// Links to various reference documents, if applicable.
Tickets
// Links or report with relevant JIRA tickets.