8000 [DOC]: Kafka producer example should use bracket notation for Map keys · Issue #516 · conductor-oss/conductor · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
9AD6

[DOC]: Kafka producer example should use bracket notation for Map keys #516

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
sc-a-zhukov opened this issue May 21, 2025 · 0 comments
Open

Comments

@sc-a-zhukov
Copy link

What are you missing in the docs

The Kafka producer example in workflow-event-listener/README.md in the Kafka publisher section (link) uses dot notation for keys that are bound to a Map<String, Object> (for properties conductor.workflow-status-listener.kafka.producer in the KafkaWorkflowStatusPublisherProperties.java file) .
With Spring Boot, dots inside a map key are treated as path separators, so the values are not bound and Conductor on start get default value for the "bootstrap.servers" key.

Spring Boot’s “Binding Maps” rule requires square-bracket notation when a map key contains dots or other special characters; without it, each segment is treated as a nested property instead of a single map key.
docs

The docs should show the bracket notation required for map binding.

Proposed text

Replace the current property examples with keys like this:

conductor.workflow-status-listener.type=kafka

# Kafka Producer Configurations (note the bracket notation for Map keys)
conductor.workflow-status-listener.kafka.producer[bootstrap.servers]=kafka:29092

# Serializers
conductor.workflow-status-listener.kafka.producer[key.serializer]=org.apache.kafka.common.serialization.StringSerializer
conductor.workflow-status-listener.kafka.producer[value.serializer]=org.apache.kafka.common.serialization.StringSerializer

# Reliability Settings
conductor.workflow-status-listener.kafka.producer[acks]=all
conductor.workflow-status-listener.kafka.producer[enable.idempotence]=true

# Retry sending messages if failure
conductor.workflow-status-listener.kafka.producer[retries]=5
conductor.workflow-status-listener.kafka.producer[retry.backoff.ms]=100

# Allow batching (default 0)
conductor.workflow-status-listener.kafka.producer[linger.ms]=10
conductor.workflow-status-listener.kafka.producer[batch.size]=65536
conductor.workflow-status-listener.kafka.producer[buffer.memory]=67108864

# Reduce network load
conductor.workflow-status-listener.kafka.producer[compression.type]=zstd

# Allow multiple in-flight messages (better throughput)
conductor.workflow-status-listener.kafka.producer[max.in.flight.requests.per.connection]=1

# Default Topic for All Workflow Status Events
conductor.workflow-status-listener.kafka.default-topic=workflow-status-events
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant
0