> For the complete documentation index, see [llms.txt](https://docs.bella.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bella.fi/guides/advanced-for-a-better-user-experience-as-a-state-machine/persisting-and-recovering.md).

# Persisting & Recovering

If a state is important enough that you want to test something on it across multiple programs, e.g. suppose you want to test something important on the state after replaying 200,000 events from the deployment of a pool, you can replay those events for once, then persist everything as a snapshot and directly resume from then on to make the preparation faster.

```typescript
configurableCorePool.takeSnapshot("description for snapshot");
```

Then don't forget to persist it so that you can recover/resume later.

```typescript
let snapshotId: string = await configurableCorePool.persistSnapshot();
```

Later you can recover the pool from any snapshot in the internal database(local database file with default SQLite implementation).

```typescript
let recoveredConfigurableCorePool: ConfigurableCorePool =
  await clientInstance.recoverCorePoolFromSnapshot(snapshotId);
```

If you forget the snapshotId, you can list and check all snapshots by information like description or created timestamp.

```typescript
let snapshotProfiles: SnapshotProfile[] =
  await clientInstance.listSnapshotProfiles();
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bella.fi/guides/advanced-for-a-better-user-experience-as-a-state-machine/persisting-and-recovering.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
