CockroachDB

CockroachDB is a distributed SQL database that uses the PostgreSQL wire protocol. It works with Memori through the same psycopg driver as PostgreSQL — no special adapter needed.

Install

pip install memori psycopg2-binary

Quick Start

CockroachDB Connection
from memori import Memori
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine(
    "cockroachdb+psycopg2://user:password@localhost:26257/memori_db",
    pool_pre_ping=True
)
SessionLocal = sessionmaker(bind=engine)

mem = Memori(conn=SessionLocal)
mem.config.storage.build()

Connection Strings

EnvironmentConnection String
Localcockroachdb+psycopg2://root@localhost:26257/memori_db
With Authcockroachdb+psycopg2://user:pass@host:26257/memori_db
CockroachDB Cloudcockroachdb+psycopg2://user:pass@cluster.cockroachlabs.cloud:26257/memori_db?sslmode=verify-full
PostgreSQL schemepostgresql+psycopg2://user:pass@host:26257/memori_db

Complete Example

import os
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from memori import Memori
from openai import OpenAI

engine = create_engine(
    os.getenv("COCKROACHDB_URL"),
    pool_pre_ping=True,
    pool_size=10,
    max_overflow=20,
    pool_recycle=300
)
SessionLocal = sessionmaker(bind=engine)

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
mem = Memori(conn=SessionLocal).llm.register(client)
mem.attribution(entity_id="user_123", process_id="my_agent")
mem.config.storage.build()

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "I manage a distributed systems team."}]
)
print(response.choices[0].message.content)

mem.augmentation.wait()
facts = mem.recall("job role")
print(facts)