API Reference Jido Signal v#2.2.0

View Source

Modules

Defines the core Signal structure in Jido, implementing the CloudEvents specification (v1.0.2) with Jido-specific extensions for agent-based systems.

The main application module for Jido Signal.

Implements a signal bus for routing, filtering, and distributing signals.

Behavior for signal bus middleware modules.

A middleware that logs signal activity using Elixir's Logger.

Handles execution of middleware chains for signal bus operations.

A partition handles a subset of subscriptions and their dispatch.

Supervises partition workers for a bus.

A GenServer that manages persistent subscription state and checkpoints for a single subscriber.

Represents a signal that has been recorded in the bus log.

Manages snapshots of the bus's signal log. A snapshot represents a filtered view of signals at a particular point in time, filtered by a path pattern.

The actual snapshot data stored in :persistent_term. Contains the full signal list and metadata.

A lightweight reference to a snapshot stored in :persistent_term. Contains only the metadata needed for listing and lookup.

Defines the state structure for the signal bus.

Provides streaming functionality for the signal bus.

Defines the subscriber model and subscription management for the signal bus.

A test utility for observing signals crossing process boundaries via telemetry events.

A flexible signal dispatching system that routes signals to various destinations using configurable adapters.

Defines the behaviour for signal dispatch adapters in the Jido system.

An adapter for dispatching signals through the Jido signal bus system.

Circuit breaker wrapper using :fuse for dispatch adapters.

An adapter for dispatching signals directly to the console output (stdout).

An adapter for dispatching signals via HTTP requests using Erlang's built-in :httpc client.

An adapter for dispatching signals through Elixir's Logger system.

An adapter for dispatching signals to named processes in the Erlang registry.

A no-operation adapter that silently discards all signals.

An adapter for dispatching signals directly to Erlang processes using PIDs.

An adapter for dispatching signals through Phoenix.PubSub.

An adapter for dispatching signals to webhooks.

Canonical error taxonomy, normalization, retryability, and public serialization for Jido Signal.

Error for dispatch failures.

Splode error class for runtime execution failures.

Error for runtime signal processing failures.

Splode error class for unexpected internal failures.

Error for unexpected internal failures.

Splode error class for invalid inputs and validation failures.

Error for invalid input parameters.

Splode error class for routing failures.

Error for routing failures.

Splode error class for timeout failures.

Error for timeout failures.

Defines the core extension behavior and using macro for Signal extensions.

Dispatch extension for Jido Signals.

Compile-time registry for Signal extensions.

Trace extension for Jido Signal correlation and debugging.

Manages UUID7-based signal IDs for the bus system. Provides utilities for generating, comparing, and extracting information from signal IDs.

Manages instance-scoped signal infrastructure.

The Signal Journal tracks and manages signals between agents, maintaining causality and conversation relationships. It provides a directed graph of signals that captures temporal ordering and causal relationships.

ETS-based implementation of the Journal persistence behavior. Uses separate ETS tables for signals, causes, effects, and conversations.

In-memory implementation of the Journal persistence behavior. Uses Agent to maintain state.

Mnesia-based implementation of the Journal persistence behavior using Memento.

Memento table definitions for the Mnesia journal adapter.

Table for cause-effect relationships (cause -> effects)

Table for subscription checkpoints

Table for conversation signal lists

Table for dead letter queue entries

Table for effect-cause relationships (effect -> causes)

Defines the behavior for Journal persistence adapters.

Resolves process names based on optional jido: instance scoping.

Registry for managing signal subscriptions.

Represents a subscription to signal patterns in the registry.

The Router module implements a high-performance, trie-based signal routing system designed specifically for agent-based architectures. It provides sophisticated message routing capabilities with support for exact matches, wildcards, pattern matching functions, and multiple dispatch targets.

Optional persistent_term caching for Router tries.

The routing engine that matches signals to handlers.

Router Helper struct to store handler metadata

Router Helper struct to store node handler metadata

Router Helper struct to store pattern match metadata

Router Helper struct to store route metadata

Router Helper struct to store router metadata

Router Helper struct to store trie node metadata

Validates router configuration and normalizes route specifications.

Router Helper struct to store wildcard handler metadata

Shared sanitization profiles for observability and transport boundaries.

Configuration management for serialization settings.

A serializer that uses Erlang's built-in term format.

Protocol to allow additional decoding of a value that has been deserialized from JSON.

A serializer that uses the JSON format and Jason library.

A type provider that uses the Elixir module name

A serializer that uses the MessagePack format via the Msgpax library.

Schema validation for Jido Signals using Zoi.

Behaviour for serialization strategies.

Specification to convert between an Elixir struct and a corresponding string type.

Canonical telemetry helper for Jido Signal.

Helper functions for distributed trace management.

Trace context struct for distributed tracing.

Process-dictionary-based trace context management.

Helper module containing macro code for use Jido.Signal.

A collection of utility functions for the Jido framework.

Mix Tasks

Install and configure Jido Signal for use in an application.