Skip to content

Latest commit

 

History

History
95 lines (53 loc) · 5.05 KB

File metadata and controls

95 lines (53 loc) · 5.05 KB
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
Loading

CodeBoardingDemoContact

Details

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.

faust.agents.agent.Agent

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:

faust.channels

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:

faust.streams

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:

faust.app.base

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:

faust.topics

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:

faust.supervisors

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

faust.sinks

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

faust.tables

Provides persistent and queryable state for agents, enabling stateful stream processing, aggregations, and joins by storing and retrieving data across events.

Related Classes/Methods: