Skip to main content

Overview

The Broker class configures the connection and topic settings for Kafka message brokers used in the AveniECA streaming architecture.

Class Reference

Broker

Dataclass for Kafka broker configuration. Import:
from avenieca.config.broker import Broker

Fields

url
str
required
The Kafka broker URL (e.g., localhost:9092)
sub_topic
str
required
The topic to subscribe to for incoming messages
pub_topic
str
required
The topic to publish outgoing messages to
group
str
required
The consumer group ID for coordinated message consumption
auto_offset_reset
str
default:"latest"
Controls where to start reading messages when no committed offset exists:
  • "latest" - Start from the newest messages
  • "earliest" - Start from the oldest available messages

Usage Examples

Basic Configuration

from avenieca.config.broker import Broker

broker = Broker(
    url="localhost:9092",
    sub_topic="perception-signals",
    pub_topic="response-signals",
    group="eca-consumer-group"
)

Production Configuration

from avenieca.config.broker import Broker

# Configure for production with earliest offset reset
broker = Broker(
    url="kafka.production.com:9092",
    sub_topic="prod.perception",
    pub_topic="prod.response",
    group="eca-prod-consumers",
    auto_offset_reset="earliest"  # Process all historical messages
)

Multiple Brokers

from avenieca.config.broker import Broker

# Separate brokers for different signal types
perception_broker = Broker(
    url="localhost:9092",
    sub_topic="visual-signals",
    pub_topic="visual-responses",
    group="visual-processors"
)

action_broker = Broker(
    url="localhost:9092",
    sub_topic="motor-commands",
    pub_topic="motor-feedback",
    group="motor-controllers"
)

Build docs developers (and LLMs) love