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
endState 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
Types
@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() }