Skip to main content

Module message_bus

Module message_bus 

Source
Expand description

§Message Bus

Tokio-based MessageBusPort implementation using tokio::sync::mpsc channels.

§Architecture

┌──────────┐  InboundMessage   ┌──────────────┐
│ Bot /    │ ────────────────→ │              │
│ Adapter  │                   │ TokioMessage │
│          │ ←──────────────── │     Bus      │
└──────────┘  OutboundMessage  └──────────────┘
                                 ↑         ↓
                          recv()         send()
                       (agent side)   (bot side)

§Usage

use bob_runtime::message_bus::MessageBusHandle;

let handle = MessageBusHandle::new(64);
let inbound = handle.inbound_port();
let outbound = handle.outbound_port();

// Bot side pushes inbound messages
inbound.push(msg).await?;

// Agent side consumes inbound messages
let msg = outbound.recv().await?;

Structs§

BotSideBus
The bot-side port for pushing inbound messages and consuming outbound messages.
MessageBusBuilder
Builder for configuring a MessageBusHandle.
MessageBusHandle
Handle that owns both sides of a message bus channel pair.
TokioMessageBus
Concrete MessageBusPort backed by tokio::sync::mpsc channels.