conduktor.io ↗

Partition Count Must Be Consumer-Parallelism Aligned

Restrict partition counts to a divisor-rich allowlist (1, 3, 6, 12, 24, 48, 96).

Rationale

When `partitions % consumers != 0`, range/cooperative-sticky assignors give some consumers one extra partition. With a prime count like 17 or 23 you can never balance, and the lagging consumer holds back the whole group. A divisor-rich allowlist keeps the math friendly for common consumer-group sizes.

Pattern

partitions in [1, 3, 6, 12, 24, 48, 96]

Examples

partitions: 6
partitions: 12
partitions: 48
partitions: 5
partitions: 17
partitions: 100

Parameters

NameDefaultDescription
allowed_values [1,3,6,12,24,48,96] Allowed partition counts.

Governs

This policy relates to the following Kafka configuration keys:

Implementation

Drop this YAML into Conduktor Console as a ResourcePolicy, then link it from an ApplicationInstance, Application, or KafkaCluster.

Conduktor ResourcePolicy
# Conduktor self-service ResourcePolicy
---
apiVersion: self-serve/v1
kind: ResourcePolicy
metadata:
  name: partition-count-power-aligned
spec:
  targetKind: Topic
  description: partitions must be one of [1, 3, 6, 12, 24, 48, 96]
  rules:
    - condition: 'spec.partitions in [1, 3, 6, 12, 24, 48, 96]'
      errorMessage: "partitions must be one of [1, 3, 6, 12, 24, 48, 96] — odd or prime counts cause permanent consumer-group skew"

Related policies

Try Conduktor Console

Enforce policies like this across your team — central audit history, pre-commit guardrails, ApplicationInstance bindings. 5-min Docker install.

Get Started →