# `CMDC.Checkpoint.Backend.DETS`
[🔗](https://github.com/tuplehq/cmdc/blob/v0.4.0/lib/cmdc/checkpoint/backend/dets.ex#L1)

轻持久化 DETS 后端 — 单节点磁盘持久化。

适合：开发笔记本 / 单实例部署 / 不想拉 PG 的小服务。
不适合：高并发、跨节点（DETS 单写者）、上 GB 数据。

## 表设计

与 ETS 后端结构一致：
- 表名 `:cmdc_checkpoints_dets`
- key：`{session_id, checkpoint_id}`
- value：`%CMDC.Checkpoint.Snapshot{}`

## 启动

- **自动**：通过 `CMDC.Checkpoint.Backend.DETS.start/0`（用户在 application.ex 加）
- **手动**：`{:ok, _} = CMDC.Checkpoint.Backend.DETS.start(file: "checkpoints.dets")`
- **关闭**：`CMDC.Checkpoint.Backend.DETS.stop/0`

## 注意

- DETS 是单写者；高并发场景请用 PG backend
- 文件位置默认 `priv/checkpoints.dets`，可通过 `:file` 选项覆盖

# `reset`

```elixir
@spec reset(keyword()) :: :ok
```

清空表（测试用）。

# `start`

```elixir
@spec start(keyword()) :: {:ok, atom()} | {:error, term()}
```

打开 DETS 表（幂等）。

## 选项

- `:file` — 文件路径，默认 `"checkpoints.dets"`
- `:dir` — 文件存放目录，默认 `Application.app_dir(:cmdc, "priv")`

# `stop`

```elixir
@spec stop() :: :ok
```

关闭 DETS 表（幂等）。

---

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