Jido.Messaging.Persistence.ETS (Jido Messaging v1.0.0)

Copy Markdown View Source

In-memory ETS adapter for Jido.Messaging.

Uses anonymous ETS tables for per-instance isolation, enabling multiple messaging instances in the same BEAM without conflicts.

Usage

defmodule MyApp.Messaging do
  use Jido.Messaging, persistence: Jido.Messaging.Persistence.ETS
end

State Structure

The adapter state contains table IDs for:

  • :rooms - Room records keyed by room_id
  • :participants - Participant records keyed by participant_id
  • :threads - Thread records keyed by thread_id
  • :messages - Message records keyed by message_id
  • :room_messages - Index of message_ids by room_id (bag table)
  • :thread_messages - Index of message_ids by thread_id (bag table)
  • :room_bindings - External binding to room_id mapping
  • :participant_bindings - External ID to participant_id mapping
  • :onboarding_flows - Onboarding flow records keyed by onboarding_id
  • :ingress_subscriptions - Bridge/provider subscription metadata

Summary

Functions

Returns the Zoi schema

Types

t()

@type t() :: %Jido.Messaging.Persistence.ETS{
  bridge_configs: any(),
  ingress_subscriptions: any(),
  message_external_ids: any(),
  messages: any(),
  onboarding_flows: any(),
  participant_bindings: any(),
  participants: any(),
  room_bindings: any(),
  room_bindings_by_id: any(),
  room_bindings_by_room: any(),
  room_messages: any(),
  room_threads: any(),
  rooms: any(),
  routing_policies: any(),
  thread_external_ids: any(),
  thread_messages: any(),
  thread_roots: any(),
  threads: any()
}

Functions

schema()

Returns the Zoi schema