graph LR
Faust_Application_Core["Faust Application Core"]
Configuration_Management["Configuration Management"]
Topic_Management["Topic Management"]
State_Management["State Management"]
Agent_Management["Agent Management"]
Kafka_Consumer["Kafka Consumer"]
Kafka_Producer["Kafka Producer"]
Web_Server["Web Server"]
Faust_Application_Core -- "initializes and configures" --> Configuration_Management
Faust_Application_Core -- "manages and provisions" --> Topic_Management
Faust_Application_Core -- "manages and provisions" --> State_Management
Faust_Application_Core -- "manages and provisions" --> Agent_Management
Faust_Application_Core -- "integrates with and manages" --> Kafka_Consumer
Faust_Application_Core -- "integrates with and manages" --> Kafka_Producer
Faust_Application_Core -- "integrates with" --> Web_Server
Faust_Application_Core -- "coordinates for rebalance" --> Kafka_Consumer
Faust_Application_Core -- "coordinates for rebalance" --> State_Management
Configuration_Management -- "configures" --> Kafka_Producer
Configuration_Management -- "configures" --> Kafka_Consumer
Configuration_Management -- "configures" --> State_Management
Configuration_Management -- "configures" --> Web_Server
Agent_Management -- "uses for message I/O" --> Topic_Management
Agent_Management -- "uses for stateful operations" --> State_Management
Agent_Management -- "uses to send messages" --> Kafka_Producer
Faust_Application_Core -- "uses to send messages" --> Kafka_Producer
The Faust Application Definition subsystem is centered around the Faust Application Core component, which serves as the declarative blueprint and orchestrator for the entire Faust application. It defines and manages the lifecycle and interactions of the core stream processing elements.
The central orchestrator and declarative blueprint of a Faust application. It defines and manages the lifecycle of agents, topics, tables, and integrates with core services like Kafka producers/consumers and the web server. It also handles the overall application startup and shutdown sequences.
Related Classes/Methods:
Manages and provides access to all application-wide configuration settings, including Kafka broker details, state store backends, web server settings, and other operational parameters.
Related Classes/Methods:
Provides an interface for defining, managing, and interacting with Kafka topics used by the Faust application. This includes topic creation, serialization, and deserialization.
Related Classes/Methods:
Manages the application's state tables, which are changelogged key-value stores used by agents for stateful stream processing. This includes mechanisms for persistence, recovery, and replication.
Related Classes/Methods:
Manages the lifecycle, execution, and coordination of Faust agents, which are the core stream processing units containing business logic.
Related Classes/Methods:
Represents and manages the underlying aiokafka consumer client responsible for fetching messages from Kafka topics.
Related Classes/Methods:
Represents and manages the underlying aiokafka producer client responsible for sending messages to Kafka topics.
Related Classes/Methods:
Manages the integrated web server (e.g., Aiohttp) for exposing HTTP endpoints, often used for health checks, metrics, or administrative interfaces.
Related Classes/Methods: