Skip to content

Latest commit

 

History

History
73 lines (42 loc) · 4.55 KB

File metadata and controls

73 lines (42 loc) · 4.55 KB
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
Loading

CodeBoardingDemoContact

Details

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.

TopicManager

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:

TopicAdmin

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:

Topic

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:

TopicConfig

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:

QuixTopicManager

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: