foundation version 2.0.0 package jido_signal

Jido Signal

CloudEvents-based event-driven communication toolkit for Elixir

Open source on GitHub →
quickstart.exs mix deps
defp deps do
  [
    {:jido_signal, "~> 2.0.0"}
  ]
end

AT A GLANCE

CloudEvents v1.0.2 compliant message envelope
Trie-based router with O(k) segment matching and wildcards
GenServer-based signal bus with pub/sub, history, and replay
9 built-in dispatch adapters (PID, PubSub, HTTP, Webhook, etc.)

ECOSYSTEM RELATIONSHIPS

Depends On
none

FULL OVERVIEW

Overview

Jido Signal is a sophisticated event-driven communication toolkit for Elixir, providing the foundational messaging infrastructure for the Jido agent ecosystem. Built on the CloudEvents v1.0.2 specification, it defines a standardized signal (message envelope) format and provides a complete stack for routing, dispatching, persisting, and tracking signals across processes, nodes, and external systems.

Purpose

Jido Signal is the nervous system of the Jido ecosystem. It provides the universal message format and delivery infrastructure that all other Jido packages use to communicate. Every event, command, agent message, and state change flows through the system as a Signal.

Major Components

Core Signal (Jido.Signal)

The central struct implementing CloudEvents v1.0.2 with required fields (id, type, source, specversion) and optional fields. Supports custom signal types with schema validation via use Jido.Signal.

Signal Router (Jido.Signal.Router)

High-performance trie-based routing engine with O(k) path matching, single-level (*) and multi-level (**) wildcards, and priority-based handler ordering.

Signal Bus (Jido.Signal.Bus)

GenServer-based in-memory pub/sub hub with subscriptions, routing, signal history, replay, snapshots, partitioned dispatch, rate limiting, persistent subscriptions, and middleware pipelines.

Signal Dispatch (Jido.Signal.Dispatch)

Pluggable adapter-based delivery system with 9 built-in adapters supporting synchronous, asynchronous, and batched dispatch modes.

Signal Journal (Jido.Signal.Journal)

Causality and conversation tracking via a directed graph of signals with temporal querying and pluggable persistence backends.

Distributed Tracing (Jido.Signal.Trace)

W3C Trace Context-compatible distributed tracing with 128-bit trace IDs, span linking, and causation chains.