# AsyncNeo4jSaver

> **Class** in `langchain_neo4j`

📖 [View in docs](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver)

Asynchronous Neo4j checkpoint saver for LangGraph.

This class implements the BaseCheckpointSaver interface using Neo4j
as the persistence backend with async support and a proper graph model.
It supports storing checkpoints, channel states, and pending writes
using relationships for efficient traversal.

## Signature

```python
AsyncNeo4jSaver(
    self,
    driver: AsyncDriver,
    database: str | None = None,
)
```

## Description

**Graph Model:**

(:Thread)-[:HAS_CHECKPOINT]->(:Checkpoint)-[:PREVIOUS]->(:Checkpoint)
(:Checkpoint)-[:HAS_CHANNEL]->(:ChannelState)
(:Checkpoint)-[:HAS_WRITE]->(:PendingWrite)

**Example:**

>>> # Using from_conn_string (recommended)
>>> async with await AsyncNeo4jSaver.from_conn_string(
...     uri="bolt://localhost:7687",
...     user="neo4j",
...     password="password"
... ) as checkpointer:
...     await checkpointer.setup()  # Create indexes (run once)
...     graph = builder.compile(checkpointer=checkpointer)
...     result = await graph.ainvoke({"messages": [...]}, config)

>>> # Using existing async driver
>>> driver = AsyncGraphDatabase.driver(uri, auth=(user, password))
>>> checkpointer = AsyncNeo4jSaver(driver)
>>> await checkpointer.setup()

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `driver` | `AsyncDriver` | Yes | An async Neo4j Driver instance. |
| `database` | `str \| None` | No | Optional database name (defaults to Neo4j default). (default: `None`) |

## Extends

- `BaseNeo4jSaver`

## Constructors

```python
__init__(
    self,
    driver: AsyncDriver,
    database: str | None = None,
) -> None
```

| Name | Type |
|------|------|
| `driver` | `AsyncDriver` |
| `database` | `str \| None` |


## Methods

- [`from_conn_string()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/from_conn_string)
- [`close()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/close)
- [`setup()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/setup)
- [`aput()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/aput)
- [`aput_writes()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/aput_writes)
- [`aget_tuple()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/aget_tuple)
- [`alist()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/alist)
- [`adelete_thread()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/adelete_thread)
- [`put()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/put)
- [`put_writes()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/put_writes)
- [`get_tuple()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/get_tuple)
- [`list()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/list)
- [`delete_thread()`](https://reference.langchain.com/python/langchain-neo4j/checkpoint/aio/AsyncNeo4jSaver/delete_thread)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-neo4j/blob/f46cc4745b03943780ab71713adb1836adbbd425/libs/neo4j/langchain_neo4j/checkpoint/aio.py#L49)