Features
ICC includes a number of feature flags for optional functionality. This document describes each feature and how to enable or disable them.
Caching
Section titled “Caching”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Cron |
| Purpose | Enable caching features |
| Environment Variable | PLT_FEATURE_CACHE |
| Helm | services.icc.features.cache.enable |
Cache Recommendations
Section titled “Cache Recommendations”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Cron |
| Purpose | Enables the TRAFFICANTE cron job for cache recommendations |
| Environment Variable | PLT_FEATURE_CACHE_RECOMMENDATIONS |
| Helm | services.icc.features.cache_recommendations.enable |
Functionality:
- Enables daily cache optimization recommendations via the Trafficante service
- Runs at midnight daily (0 0 * * *) when enabled (default value)
- Helps optimize cache performance across watts
Risk Service Metadata Export
Section titled “Risk Service Metadata Export”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Cron |
| Purpose | Enables the RISK_SERVICE_DUMP cron job for exporting watt traffic metadata |
| Environment Variable | PLT_FEATURE_RISK_SERVICE_DUMP |
| Helm | services.icc.features.risk_service_dump.enable |
Functionality:
- Enables daily risk service data dumps for analysis
- Runs at midnight daily (0 0 * * *) when enabled (default)
Fusion, Fission & Cascade (FFC)
Section titled “Fusion, Fission & Cascade (FFC)”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Cron |
| Purpose | Enables the FFC_RECOMMENDER cron job for Fast Feedback Control |
| Environment Variable | PLT_FEATURE_FFC |
| Helm | services.icc.features.ffc.enable |
Functionality:
- Enables Fast Feedback Control cluster optimization recommendations
- Runs at midnight daily (0 0 * * *) when enabled (default)
- Provides intelligent cluster resource optimization suggestions
Scaling Trend Prediction
Section titled “Scaling Trend Prediction”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Cron |
| Purpose | Enables trend prediction algorithm for improved watt scaling |
| Environment Variable | PLT_FEATURE_SCALER_TRENDS_LEARNING |
| Helm | services.icc.features.scaler_trends_learning.enable |
Skew Protection
Section titled “Skew Protection”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Control Plane |
| Purpose | Enables version-aware routing for zero-downtime deployments |
| Environment Variable | PLT_FEATURE_SKEW_PROTECTION |
| Helm | services.icc.features.skew_protection.enable |
Functionality:
- Enables automatic version detection from Kubernetes pod labels (
app.kubernetes.io/name,plt.dev/version) - Creates and manages HTTPRoute resources via the Kubernetes Gateway API for cookie-based session pinning
- Monitors draining versions via Prometheus and handles version lifecycle (Active, Draining, Expired)
- Requires a Gateway API-compliant controller with Extended conformance (RegularExpression header matching)
See the Skew Protection documentation for full details, prerequisites, and configuration.
Workflow Service
Section titled “Workflow Service”| Property | Value |
|---|---|
| Type | Boolean |
| Default | false |
| Service | Workflow |
| Purpose | Deploys the Workflow Service for durable workflow orchestration |
| Helm | services.workflow.deploy |
Functionality:
- Deploys the Workflow Service (
@platformatic/workflow), a PostgreSQL-backed service that manages workflow state, queue routing, and hook lifecycle for apps using the Vercel Workflow DevKit - Requires a
workflowdatabase in PostgreSQL (created by the install script or manually). The Helm chart wires the connection string via theicc-databasessecret - Runs migrations automatically on startup
- Provides a REST API for events, runs, steps, hooks, queues, and streams
- Integrates with ICC’s skew protection: ICC uses the
plt.dev/workflow: "true"pod label to apply workflow-specific draining policies (longer grace periods, checks for active runs before expiring a version)
Helm values:
services: workflow: deploy: trueOptional overrides:
services: workflow: deploy: true image: repository: ghcr.io/platformatic/workflow tag: "latest" log_level: info # debug, info, warn, error monitor: enable: true # Prometheus ServiceMonitorSkew protection settings for workflows:
When skew protection is enabled, workflow-specific draining timeouts can be configured separately from HTTP timeouts. ICC applies the workflow policy automatically for any pod with the plt.dev/workflow: "true" label:
services: icc: features: skew_protection: enable: true workflow_grace_period_ms: 3600000 # 1h (default) workflow_max_alive_ms: 259200000 # 72h (default)The workflow expire policy differs from the HTTP policy: instead of checking only for zero traffic (RPS), it also queries the Workflow Service for active runs, pending hooks, waiting sleeps, and queued messages. A version is only expired when all counts are zero.
Application requirements:
Apps using workflows need:
WORKFLOW_TARGET_WORLD=@platformatic/worldandPLT_WORLD_SERVICE_URLenvironment variables in the Dockerfileplt.dev/workflow: "true"pod label on the Deployment spec- A K8s Service with
app.kubernetes.io/namematching the app label - RBAC for pod-read (so
@platformatic/worldcan detect the deployment version from theplt.dev/versionlabel)
See the Workflows UI documentation for the ICC dashboard integration.