Skip to content

Evaluate and implement message bus (asyncio queues vs external broker) #8

@Aureliolo

Description

@Aureliolo

Context

Implement inter-agent message bus per design spec sections 5.1 and 15.2. This is the foundational communication layer that all agent-to-agent messaging will be built upon.

Options to evaluate:

  • asyncio queues — simplest, in-process, good for single-process deployment
  • Redis Pub/Sub — external broker, supports multi-process deployment
  • Custom event system — tailored to our needs, medium complexity

The initial implementation should use asyncio queues for simplicity, but the interface must be abstract enough to swap in Redis or another broker later.

Acceptance Criteria

  • Abstract message bus interface defined (swappable implementations)
  • In-process asyncio queue implementation as default backend
  • Pub/sub with named channels (#engineering, #all-hands, etc.)
  • Direct messaging between specific agents
  • Message persistence (in-memory log with configurable retention)
  • Message ordering guarantees (per-channel FIFO)
  • Comprehensive unit tests (>80% coverage)
  • Design allows future Redis Pub/Sub swap without changing consumers

Dependencies

Design Spec Reference

  • Section 5.1 — Communication Patterns
  • Section 5.4 — Channel Architecture

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:criticalBlocks other work, must do firstscope:large3+ days of workscope:medium1-3 days of workspec:communicationDESIGN_SPEC Section 5 - Communication Architecturetype:featureNew feature implementationtype:researchEvaluate options, make tech decisions

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions