# `Obscura.Vault.Backend`
[🔗](https://github.com/hfiguera/obscura/blob/v0.2.0/lib/obscura/vault/backend.ex#L1)

Behaviour for optional vault backends.

Obscura ships memory and ETS backends. Applications can use this behaviour
as the contract for persistent backends without making Ecto or another
storage dependency mandatory for Obscura.

# `vault_ref`

```elixir
@type vault_ref() :: GenServer.server()
```

# `handle_call`

```elixir
@callback handle_call(term(), GenServer.from(), term()) ::
  {:reply, term(), term()} | {:reply, term(), term(), timeout() | :hibernate}
```

# `init`

```elixir
@callback init(keyword()) :: {:ok, term()} | {:stop, term()}
```

# `start_link`

```elixir
@callback start_link(keyword()) :: GenServer.on_start()
```

---

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