You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From 5.3, with an external Kafka (enable_bring_your_own_kafka), Hopsworks creates and deletes the topics it needs on that cluster through each project's kafka_connector, a feature group's notification topic becomes a topic of its project, and Kafka changes through a shared feature store are refused (hopsworks-ee PR below). The external Kafka guide said Hopsworks provisions no topics there and told users to pre-create them.
setup_installation/admin/upgrade.md, 5.2.x to 5.3.x (moved here from the chart's UPGRADE.md, which hopsworks-helm#2609 removed):
"Bring your own Kafka: Hopsworks creates and deletes topics": broker reachability from the Hopsworks pods, existing topics used as they are, the operations that create topics and the principal's Create and Delete, what is deleted and on which cluster, rows recorded before the upgrade staying on the bundled Kafka (migration V126), partitions and replicas, the OnlineFS topicPattern, inference logging staying on the bundled Kafka.
"Notification topics and shared feature stores": notification topics belong to their project (190026 for another project's), and changes through a shared feature store fail with 190027.
The 5.2.2 OnlineFS topic section now says the external Kafka exception holds on 5.2.2 only, and links the 5.3 rule.
Configuration is shown as Helm values (hopsworks.variables.enable_bring_your_own_kafka, onlinefs.dependencies.kafka, onlinefs.configmapOverrides.kafka) in place of the cluster-definition YAML.
OnlineFS must subscribe by topicPattern (default .*_onlinefs), since a fixed topicList misses the topics Hopsworks creates later.
"Topics on the external Kafka cluster": which topics are created, that existing topics are used and never deleted, which topics are deleted with their feature group or project, notification topics, and that owned topics are not shared between projects.
A warning that topics are deleted by name on the cluster the kafka_connector points at when they are deleted.
A permissions table for the kafka_connector principal (Describe, Read, Write, Create, Delete) and what fails without each.
Partitions and replicas: onlinefs_service_thread_number and kafka_num_replicas, the requested values for topics created through the topic API, and the min.insync.replicas interaction.
user_guides/fs/feature_group/topic.md: a topic that does not exist is created on the external Kafka too, and the topicPattern note names the Helm value.
user_guides/fs/feature_group/notification.md: the notification topic is a topic of the project that Hopsworks creates and deletes, instead of one to create first.
user_guides/fs/data_source/usage.md: a confluent_options() example for producers and consumers of your own.
reference/rest_error_codes.md: regenerated from hopsworks-ee. It adds 190026 and 190027, rewords 190003, and picks up the codes other merged changes added since the last run.
Merge with or after the hopsworks-ee PR, since this describes its behaviour, and no later than the hopsworks-helm PR. The change ships in 5.3 only, so there is no branch-5.2 counterpart.
Test plan
uv run hopsworks-docs markdownlint passes.
Strict uv run hopsworks-docs check build passes.
The new Python block passes the snakeoil ruff rule set.
The described behaviour was checked on dev cluster bubriks with the backend branch: the hopsworks-ee PR lists the loadtests.
This introduces a user-facing SDK how-to inside the infrastructure/admin guide. .claude/docs/README.md:26–27 places task-focused feature usage under user_guides/. Move the confluent_options() example to the Kafka Data Source usage documentation and link to it here, keeping this page focused on cluster integration.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
The example needs correction, and topic-deletion behavior and Helm settings still require verification against the inaccessible backend and chart changes.
The Describe, Write, Read, Create, and Delete descriptions each contain multiple sentences on one source line, contrary to the repository's one-sentence-per-line rule. Rephrase each description as a single sentence while keeping the Markdown table rows intact.
This new cross-reference uses a relative Markdown file path rather than the heading-ID syntax required by the repository's linking guidelines. Use [Data Source usage guide][streaming-based-connector] to follow the versioned documentation's linking convention.
https://hopsworks.atlassian.net/browse/FSTORE-1973
With bring-your-own-Kafka enabled, Hopsworks now creates and deletes the
topics the feature store needs on the external Kafka through each
feature store's kafka_connector, as it does on the bundled Kafka. Topics
that already exist there are used as they are and never deleted. A
feature group's notification topic becomes a topic of its project, and
Kafka topics and schemas are no longer changed through a shared feature
store. hopsworks-ee carries the behaviour, hopsworks-api fixes the SDK's
Kafka connector, the docs describe it and the upgrade, hopsworks-helm
checks it in the satellite CI lane, and loadtest adds the e2e_byok
tests.
The upgrade guide's 5.2.x to 5.3.x hop describes what the external
Kafka's principal needs, that the Hopsworks pods must reach its brokers,
which operations create and delete topics, that rows recorded before the
upgrade stay on the bundled Kafka, partitions and replicas, moving
OnlineFS from a topic list to the pattern, notification topics, and
changes through shared feature stores. The external Kafka guide shows
the configuration as Helm values and covers the topics Hopsworks
creates, uses and deletes there, the principal's permissions, the
OnlineFS clients and topic pattern, partitions and replicas, and
notification topics. The Change Data Capture guide no longer asks for
the topic to be created first, the confluent-kafka example moves to the
Data Source usage guide, and the REST status code reference is
regenerated.
Reviewed-by: GitHub Copilot <Copilot@users.noreply.github.com>
Reviewed-by: OpenAI Codex (codex-plugin-cc 1.0.6) <codex@openai.com>
Signed-off-by: Ralfs Zangis <ralfs@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-1973
The external_kafka migration is V128 in hopsworks-ee: master took V123
and V124.
Signed-off-by: Ralfs Zangis <ralfs@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-1973
The external_kafka migration is V125 in hopsworks-ee, the next version
after master's V124.
Signed-off-by: Ralfs Zangis <ralfs@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-1973
The external_kafka migration is V126 in hopsworks-ee: master's
HWORKS-3535 took V125.
Signed-off-by: Ralfs Zangis <ralfs@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
https://hopsworks.atlassian.net/browse/FSTORE-1973
Selecting an existing topic for inference logging with an external
Kafka is refused with one of several codes, depending on the topic, so
the upgrade note no longer names BAD_TOPIC alone.
Signed-off-by: Ralfs Zangis <ralfs@logicalclocks.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This branch has not been deployed
No deployments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://hopsworks.atlassian.net/browse/FSTORE-1973
Summary
From 5.3, with an external Kafka (
enable_bring_your_own_kafka), Hopsworks creates and deletes the topics it needs on that cluster through each project'skafka_connector, a feature group's notification topic becomes a topic of its project, and Kafka changes through a shared feature store are refused (hopsworks-ee PR below). The external Kafka guide said Hopsworks provisions no topics there and told users to pre-create them.setup_installation/admin/upgrade.md, 5.2.x to 5.3.x (moved here from the chart'sUPGRADE.md, which hopsworks-helm#2609 removed):topicPattern, inference logging staying on the bundled Kafka.setup_installation/on_prem/external_kafka_cluster.md:hopsworks.variables.enable_bring_your_own_kafka,onlinefs.dependencies.kafka,onlinefs.configmapOverrides.kafka) in place of the cluster-definition YAML.topicPattern(default.*_onlinefs), since a fixedtopicListmisses the topics Hopsworks creates later.kafka_connectorpoints at when they are deleted.kafka_connectorprincipal (Describe, Read, Write, Create, Delete) and what fails without each.onlinefs_service_thread_numberandkafka_num_replicas, the requested values for topics created through the topic API, and themin.insync.replicasinteraction.user_guides/fs/feature_group/topic.md: a topic that does not exist is created on the external Kafka too, and thetopicPatternnote names the Helm value.user_guides/fs/feature_group/notification.md: the notification topic is a topic of the project that Hopsworks creates and deletes, instead of one to create first.user_guides/fs/data_source/usage.md: aconfluent_options()example for producers and consumers of your own.reference/rest_error_codes.md: regenerated from hopsworks-ee. It adds 190026 and 190027, rewords 190003, and picks up the codes other merged changes added since the last run.Related
Merge with or after the hopsworks-ee PR, since this describes its behaviour, and no later than the hopsworks-helm PR. The change ships in 5.3 only, so there is no branch-5.2 counterpart.
Test plan
uv run hopsworks-docs markdownlintpasses.uv run hopsworks-docs checkbuild passes.bubrikswith the backend branch: the hopsworks-ee PR lists the loadtests.🤖 Generated with Claude Code