graph LR
TopicManager["TopicManager"]
TopicAdmin["TopicAdmin"]
Topic["Topic"]
TopicConfig["TopicConfig"]
QuixTopicManager["QuixTopicManager"]
TopicManager -- "uses" --> TopicAdmin
TopicManager -- "manages" --> Topic
TopicAdmin -- "provides services to" --> TopicManager
TopicAdmin -- "applies configuration from" --> Topic
Topic -- "provides definition to" --> TopicAdmin
Topic -- "defined by" --> TopicConfig
TopicConfig -- "specifies properties for" --> Topic
TopicManager -- "utilizes" --> TopicConfig
QuixTopicManager -- "extends" --> TopicManager
QuixTopicManager -- "uses" --> TopicAdmin
The quix-streams topic management subsystem employs a layered architecture to handle Kafka topic lifecycle. The TopicManager acts as the primary orchestrator, providing a high-level interface for defining and managing topics. It delegates the actual low-level Kafka broker interactions to the TopicAdmin, which wraps the confluent-kafka AdminClient. Topic definitions within the application are encapsulated by the Topic data model, which in turn is structured and configured by TopicConfig objects specifying parameters like partitions and replication factors. The QuixTopicManager extends the base TopicManager to integrate seamlessly with the Quix platform, adding platform-specific naming and authentication while still leveraging the core TopicAdmin for Kafka operations. This design effectively separates concerns, allowing for flexible topic definition, robust Kafka interaction, and platform-specific extensibility.
The central orchestrator for Kafka topic lifecycle within the quix-streams application. It provides a high-level interface for defining, creating, and managing various types of topics (regular, repartition, changelog) and ensuring their compatibility for stream processing operations.
Related Classes/Methods:
A low-level wrapper around the confluent-kafka AdminClient for direct interaction with the Kafka Admin API. It performs fundamental administrative operations on Kafka brokers, such as creating, deleting, and altering topics.
Related Classes/Methods:
A data model representing a single Kafka topic, encapsulating its name, serialization/deserialization settings, and associated creation/broker configurations. It serves as the blueprint for Kafka topics within the application.
Related Classes/Methods:
A data model defining the configurable parameters for a Kafka topic, such as the number of partitions, replication factor, and other extra configuration properties. It provides a structured way to specify topic settings.
Related Classes/Methods:
A specialized implementation of TopicManager tailored for the Quix platform. It extends the base topic management functionalities with platform-specific naming conventions, authentication, and interactions with the Quix API, ensuring seamless integration within the Quix ecosystem.
Related Classes/Methods: