# Null-drift: A bare-metal O(1) Memory Store for continuous LangGraph agents

**URL:** <https://forum.langchain.com/t/null-drift-a-bare-metal-o-1-memory-store-for-continuous-langgraph-agents/3903>\
**Category:** LangGraph\
**Tags:** self-hosted, intro-to-langgraph, python-help\
**Created:** [June 11, 2026, 8:01pm UTC](https://forum.langchain.com/t/null-drift-a-bare-metal-o-1-memory-store-for-continuous-langgraph-agents/3903 "2026-06-11T20:01:09Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![CodNoob100](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.langchain.com/codnoob100/32/3132_2.png) [@CodNoob100](https://forum.langchain.com/u/CodNoob100)\
**Post date:** [June 11, 2026, 8:01pm UTC](https://forum.langchain.com/t/null-drift-a-bare-metal-o-1-memory-store-for-continuous-langgraph-agents/3903/1 "2026-06-11T20:01:09Z")

</div>

I kept hitting disk bloat and python GIL bottlenecks when using standard VectorDBs for continuous langgraph loops. so i gutted the db approach and built a headless rust daemon (null-drift).

​it manages the agent’s memory as a continuous array using geometric decay. memory stays completely flat at O(1) no matter how long your graph runs.  
​i just wrote the python wrapper so it inherits directly from BaseStore. it maps your langgraph namespaces directly to isolated phase spaces natively using aput and aget.

```python
from nulldrift_agents import NullDriftLangGraphStore
from langgraph.graph import StateGraph

store = NullDriftLangGraphStore(gateway_url="http://127.0.0.1:8000")

```

repo is here if anyone building local-first infra wants to test it out and try to break the async rust daemon! [null-drift](https://github.com/CodNoob100/null-drift)
