Skip to content
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

Distribute MQTT topic space across different Kafka topics #426

Closed
Tracked by #512
jfallows opened this issue Sep 18, 2023 · 0 comments · Fixed by #493
Closed
Tracked by #512

Distribute MQTT topic space across different Kafka topics #426

jfallows opened this issue Sep 18, 2023 · 0 comments · Fixed by #493
Assignees
Labels
enhancement New feature or request

Comments

@jfallows
Copy link
Contributor

The MQTT topic space is more like a single space, treating topic names as a filter. However the choices in how these are mapped to the Kafka topic space has impact on both scalability and performance as no server-side filtering exists in Kafka. If we use only a single underlying Kafka topic, then Zilla will receive all messages in the entire MQTT topic space at all Zilla instances.

Mapping an exact MQTT topic to the corresponding Kafka topic is straightforward.

Complexity increases as we attempt to split the MQTT topic space over different Kafka topics and still attempt to treat it as a unified MQTT topic space for wildcard topic filters.

MQTT to Kafka mappings can make use of patterns, to route to the appropriate underlying Kafka topic, perhaps even parameterized by a named segment of the MQTT topic name.

Therefore, when an MQTT wildcard topic filter is specified, we may not have explicit values for all of the parameterized segments of the Kafka topic name, but we will have the pattern. So we can interrogate Kafka for the full list of topic names and discern the subset that matches the pattern. Then we can subscribe to all Kafka topics in that subset, dynamically adjusting as new topics are created or existing topics are destroyed. They would all follow consistent filtering rules.

@jfallows jfallows added the enhancement New feature or request label Sep 18, 2023
@bmaidics bmaidics self-assigned this Oct 3, 2023
@jfallows jfallows linked a pull request Oct 26, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants