# `Jido.Messaging.Persistence.ETS`
[🔗](https://github.com/agentjido/jido_messaging/blob/v1.0.0/lib/jido_messaging/persistence/ets.ex#L1)

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

# `t`

```elixir
@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()
}
```

# `schema`

Returns the Zoi schema

---

*Consult [api-reference.md](api-reference.md) for complete listing*
