Before you start
- Read the prerequisites: Review the Intro to Elasticsearch section first
- Choose your strategy: Decide between Kafka (recommended for production) or HTTP indexing based on your infrastructure
- Check permissions: Ensure you have access to modify process-engine configurations
Quick decision: Kafka vs HTTP
Critical difference: Only the Kafka strategy provides out-of-the-box support for time-based partitioning through the
transforms.routeTS.timestamp.format configuration (see later in this guide). The HTTP strategy does not support time-based partitioning as a built-in feature.Configuration overview
All indexing is controlled by these core settings:Global indexing control
FLOWX_INDEXING_ENABLED defaults to true. Only set this variable if you want to disable indexing by setting it to false.Strategy selection
Performance considerations (FlowX defaults)
Default configuration:- Monthly indices:
yyyyMMformat for time-based partitioning (Kafka only) - 2 shards + 2 replicas: Handles up to 200k process instances per day
- Total shards per month: 6 (2 primary + 4 replica shards)
- Annual impact: 72 shards per year (well under Elasticsearch’s 1000 shard default limit)
- If indexing becomes slow: Check physical resources and shard size
- If monthly indices become too large: Switch to weekly indices (
yyyyww) - For high parallel indexing load: Add more primary shards
- High availability: The default 2 replicas provide good redundancy
HTTP-only setting
Setup: Kafka indexing (recommended)
Step 1: Configure the process engine
Add these environment variables to your process-engine configuration:Step 2: Deploy Kafka Connect
Prerequisites:- Kafka cluster (installed with Strimzi operator)
- Elasticsearch cluster (installed with eck-operator)
- Convert ES certificates to JKS format (see commands below)
Step 3: Configure the Elasticsearch Sink Connector
Key settings explained:transforms.routeTS.timestamp.format: Controls index partitioning (monthly=yyyyMM, daily=yyyyMMdd)transforms.routeTS.topic.format: Must start with your configured index namebatch.size: Adjust based on throughput needs (1000 is good default)
Step 4: Verify the setup
Check Kafka Connect status:Setup: HTTP indexing (simple)
Configure the process engine
For HTTP indexing, update your process-engine configuration:Kafka topics
The process engine publishes indexing data to this topic:
Important: The topic name in your Kafka Sink Connector configuration must match this value.
Index management
Automatic template creation
The process engine automatically creates Elasticsearch index templates during startup:- HTTP strategy: Creates the index directly with configured shards/replicas
- Kafka strategy: Creates an index template that applies to dynamically created indices
Time-based partitioning (Kafka only)
Choose your partitioning strategy based on data volume and retention needs:Efficient data deletion
Best practice: Delete entire indices rather than individual documents for better performance. With time-based partitioning, you can:Troubleshooting
Common issues
Indexing not working:- Check if indexing is disabled (only if you explicitly set
FLOWX_INDEXING_ENABLED=false) - Verify Elasticsearch connectivity
- Check process-engine logs for errors
- Increase
batch.sizein connector config - Adjust number of shards based on cluster size
- Monitor Elasticsearch cluster health

