Cache Service Guide
The Cache Service is a platform-based feature set at the environment (Org) level that provides caching capabilities at the data plane layer for dynamically referenced accounts, pipelines, and expression libraries. Since pipeline validations and executions can be slow due to information that needs to be fetched for pipeline prepare, the Cache Service optimizes the fetch mechanism by decreasing the dependency on the control plane for such operations.
Benefits
- Avoid bottlenecks during asset loading at execution time.
- Reduce time for pipeline initialization.
- Improved performance when resolving the noted asset types during pipeline execution.
- Reduce Scheduled Task start latency by eliminating a control plane round-trip each time a task fires.
- Improved cache data freshness (Snaplex 4.45.0.0 or later): stale assets are automatically self-corrected within a 1-hour age threshold if a control plane push invalidation is missed.
Support matrix
| Asset | Support | Notes |
|---|---|---|
| Groundplexes | None | |
| Cloudplexes | None | |
| Pipelines | Child pipelines and error pipelines must be referenced via the Expression Language. Child pipelines must be in the same environment (Org) as the parent pipeline. | |
| Accounts | Must be referenced via the Expression Language. | |
| Expression libraries | Must be referenced via the Expression Language | |
| Scheduled Tasks | Requires Snaplex 4.44.3.0 or later. |
Feature Enablement
All Cache Service caching (pipelines, accounts, expression libraries, and Scheduled Tasks) is disabled by default and requires feature flag enablement per environment. Contact your CSM to enable:
com.snaplogic.cc.cache.CacheClientProvider.CACHE_SERVICE_ENABLED=true
To disable the Cache Service, contact your CSM to set the flag to false.
Background refresh is available in Snaplex 4.45.0.0 or later and requires no additional configuration.
Usage Guidelines
Cache Configurations
- Default TTL (Time to Live): 96 hours
- Max Asset Size: 10 MB
You can update these configurations via the Snaplex global properties.
- Global TTL for all caches (in hours):
jcc.cache_expiry=96 - Single item max size cap (per asset in MB):
jcc.cache.file.max_mb=10
Eviction Rules
The oldest cached asset will be evicted if the limit is reached. The following lists the limit by asset type.
- Files: 1000
- Accounts: 5000
- Pipelines: 2500
- Tasks: 2500
Limitations
- The Cache Service does not support running parent and child pipelines in separate environments (Orgs). The child pipeline must be in the same environment (Org) as the parent pipeline.
- Scheduled Task caching requires Snaplex version 4.44.3.0 or later.
- The maximum number of cached tasks is 2,500.
- Ultra (always-on) tasks are not included in this release. Task caching applies to Scheduled Tasks only.
Asset References
We recommend that all pipeline references are dynamic, enabled with the Expression Language, to take advantage of the Cache Service.
- Minor UI latency while account metadata is being retained.
- If a pipeline or account asset is deleted, the view of the pipeline state for related historical runtime executions might not be visible in the Pipeline Validation Statistics via Designer. Runtime history details remain accessible in Monitor.
Asset Updates
When an account or pipeline is updated, the control plane pushes these updates to the JCC nodes so that the JCC gets the updated asset and the cache is undisturbed.
- When a project or Project space is updated, all downstream assets become invalid and do not remain in the cache.
When a Scheduled Task is updated in the control plane, the cached version is refreshed and propagated immediately. A full re-link through the control plane is not required.
If the Cache Service is unavailable when a Scheduled Task runs, execution falls back to the direct control plane fetch path. Cached tasks are retained rather than evicted on failure.
Background Refresh
The Cache Service includes a background refresh mechanism that automatically re-fetches assets that have not been refreshed within 1 hour, ensuring the cache self-corrects even if a control plane push invalidation is missed. This complements (and does not replace) the existing control plane push invalidation mechanism.
- Requires Snaplex 4.45.0.0 or later.
- Age threshold: 1 hour. Assets that have not been refreshed within 1 hour are treated as soft-invalidated and re-fetched in the background.
- Covers accounts and pipelines only in this release. Files and expression libraries are not included.
- No pipeline or task configuration changes are required.
Soft vs. hard invalidation: A hard invalidation (control plane push) immediately removes an asset from the cache and forces a synchronous re-fetch. A soft invalidation marks an asset as stale but allows it to continue serving until the background refresher replaces it, avoiding a synchronous request to the control plane on the critical execution path.
Troubleshooting
-
When a requested asset path resolves to a different path, the cache service now sets a new flag in
has_warnings. In Designer, a lint warning is displayed on the relevant Snap/Pipeline/Asset when your path is being implicitly resolved.