graph LR
faust_agents_agent_Agent["faust.agents.agent.Agent"]
faust_channels["faust.channels"]
faust_streams["faust.streams"]
faust_app_base["faust.app.base"]
faust_topics["faust.topics"]
faust_supervisors["faust.supervisors"]
faust_sinks["faust.sinks"]
faust_tables["faust.tables"]
faust_app_base -- "manages lifecycle of" --> faust_agents_agent_Agent
faust_agents_agent_Agent -- "consumes events from" --> faust_streams
faust_streams -- "receives messages from" --> faust_channels
faust_agents_agent_Agent -- "publishes messages to" --> faust_topics
faust_agents_agent_Agent -- "interacts with" --> faust_tables
faust_agents_agent_Agent -- "utilizes" --> faust_channels
faust_topics -- "serves as source/destination for" --> faust_agents_agent_Agent
faust_tables -- "provides state for" --> faust_agents_agent_Agent
The Faust stream processing application centers around the Agent component, which encapsulates the core business logic. The App component serves as the central orchestrator, managing the lifecycle of these Agent instances. Agents consume event streams, which are abstracted by the Stream component, providing a unified interface for event consumption. Events typically originate from or are published to Topics, which represent Kafka topics, acting as the primary external communication points. For internal message passing and flexible event routing, Agents can utilize Channels. Stateful processing is enabled through Tables, which provide persistent and queryable storage for Agents. Finally, Supervisors ensure the resilient execution of Agent tasks, while Sinks handle the output of processed events, directing them to external systems or other topics.
The core, encapsulated stream processing unit responsible for defining and executing specific business logic on event streams. It acts as a "worker" or "processor" in the stream processing paradigm, handling event consumption, business logic application, state management, and event production.
Related Classes/Methods:
Provides an abstraction for internal message delivery within the Faust application, allowing agents to receive messages from various sources before they are processed.
Related Classes/Methods:
Represents an iterable sequence of events that an agent consumes. It abstracts the underlying message queue, providing a high-level interface for event consumption.
Related Classes/Methods:
The base Faust application class responsible for managing the overall lifecycle of agents, including their registration, startup, and shutdown within the application context.
Related Classes/Methods:
Represents Kafka topics, serving as the primary source for input events and the ultimate destination for output events produced by agents. They are the external communication points for the agent.
Related Classes/Methods:
Manages the resilient and continuous execution of asynchronous processing tasks for agents, ensuring fault tolerance and automatic recovery in case of failures.
Related Classes/Methods: None
Components that receive and handle the output (processed events) from agents, potentially writing them to external systems, databases, or other topics.
Related Classes/Methods: None
Provides persistent and queryable state for agents, enabling stateful stream processing, aggregations, and joins by storing and retrieving data across events.
Related Classes/Methods: