# ConversationChainStoreProtocol

> **Class** in `langchain_azure_ai`

📖 [View in docs](https://reference.langchain.com/python/langchain-azure-ai/agents/hosting/_responses/conversation_chain_store/ConversationChainStoreProtocol)

Get and set named dictionaries within a conversation chain.

Implementations must satisfy these requirements:

- Persistence: after :meth:`set` succeeds, subsequent :meth:`get` calls with
    the same conversation chain ID and key return an equal, unaltered
    dictionary for the supported lifetime.
- Isolation: treat ``(conversation_chain_id, key)`` as the record identity.
    Operations on one identity must not read or modify another identity.
- Capacity: accept dictionaries containing at least 512 total characters
    across all keys and values.
- Thread safety: calls for different keys may overlap.
- Error handling: return ``None`` only when the key is absent and raise an
    exception for all other failures. If a dictionary exceeds an
    implementation limit, reject it without truncating it or modifying the
    previously stored value.

Implementations may optionally support TTL but it is recommended to prevent
unbounded growth. When supported, a write-sliding TTL is preferred:
:meth:`set` renews the lifetime and :meth:`get` does not.

## Signature

```python
ConversationChainStoreProtocol()
```

## Extends

- `Protocol`

## Methods

- [`get()`](https://reference.langchain.com/python/langchain-azure-ai/agents/hosting/_responses/conversation_chain_store/ConversationChainStoreProtocol/get)
- [`set()`](https://reference.langchain.com/python/langchain-azure-ai/agents/hosting/_responses/conversation_chain_store/ConversationChainStoreProtocol/set)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-azure/blob/7a6a664d617264df8dcb12fcfb1bacc09f21d504/libs/azure-ai/langchain_azure_ai/agents/hosting/_responses/conversation_chain_store.py#L21)