MemorySync vs Zep
A sourced comparison of MemorySync and Zep: what a write stores, how each scopes memory, published latency, identity, compliance, roles, webhooks, deployment and pricing.
Capabilities side by side
| Capability | MemorySync | Zep |
|---|---|---|
| What a write stores | Facts extracted from the text; a new value for a one-value fact, such as a city or a job title, replaces the old one | Episodes, processed asynchronously into entities and facts with valid-from and valid-to dates; a contradicted fact is invalidated, not deleted |
| Scoping | End user required on every API-key call (400 without it); every read, search and delete is filtered to that end user and project | A graph per user, holding that user’s threads, inside a project; shared graphs are addressed by graph_id |
| Retrieval | Hybrid keyword and vector search | Semantic and BM25 search fused with reciprocal rank fusion, with optional breadth-first graph search; an auto scope assembles one context block |
| Read latency | 179 ms p50 / 980 ms p95 server-side, measured against production | 87 ms p50 / 155 ms p95 on LoCoMo, published by Zep; retrieval p95 of 148–168 ms across graphs from 10K to 100M in size |
| Identity & access | SAML 2.0, OIDC and SCIM 2.0 on every plan, including Free | OIDC single sign-on on managed cloud (Enterprise SSO); SAML and SCIM are not documented |
| Compliance | Audit logs on every plan; retention policies issue deletion receipts, and tombstones keep deleted memories from coming back | SOC 2 Type II; HIPAA BAA, audit logs, retention policies and legal hold on Enterprise |
| Team roles | Owner, Admin, Developer, Analyst, Billing Admin and Member, plus custom roles | Owner and Admin on every plan; eight account and project roles on Enterprise |
| Webhooks | Memory, import, team, API-key, billing and rate-limit events | On Flex Plus and Enterprise, delivered through Svix: episode processed, ingest batch completed, BYOM request failed |
| SDKs & MCP | Python and TypeScript SDKs, CLIs on npm and PyPI, hosted MCP server | Python, TypeScript and Go SDKs over REST; a hosted Memory MCP server that end users sign in to through Google Workspace or your IdP |
| Deployment | Managed service only | Zep Cloud; bring your own key, and BYOC in your own VPC, on Enterprise; the Community Edition is deprecated, and Graphiti can be self-hosted |
| Pricing | Free: 10,000 adds and 1,000 retrievals a month. Starter $29, Pro $179, Scale $349 a month | Free: 10,000 credits a month. Flex $125, Flex Plus $375 a month; Enterprise custom |
The Zep column states only what Zep publishes about itself, checked on 29 September 2026. Sources: Pricing · Homepage (retrieval p95) · Research (LoCoMo latency) · Facts and invalidation · Searching the graph · Enterprise SSO · Security and compliance · Audit logging · Roles · Webhooks · SDKs · Memory MCP server · Enterprise · FAQ (Community Edition). MemorySync figures come from our own production measurements and documentation. Capability tables age quickly: if anything here is out of date, tell us at team@memorysync.io and we will correct it.
Why teams choose MemorySync
- Every call is scoped to an organization, project and end user, so one API key can serve many customers without pooling their memory.
- SAML, OIDC, SCIM and audit logs come with every plan, including Free.
- Facts from POST /memory/add are stored before the call returns, so there is no processing queue to poll.
- One store serves your application over REST and the SDKs, and coding assistants over a hosted MCP endpoint.
Moving from Zep
- 1
Export each user’s episodes from Zep, or let the CLI read them through the API with your Zep key.
- 2
Run memorysync migrate zep --file zep_export.json --dry-run to see, per user, what would be written and how many turns came from the user and the assistant.
- 3
Run it again without --dry-run. Each episode is extracted into facts under its Zep user as the end user, with the thread id carried over as session_id.
- 4
Replace thread.get_user_context and graph.search calls with a MemorySync query for the end user.
Common questions
Is Zep memory tied to one conversation?
No. Each user has a knowledge graph that collects facts from all of that user’s threads (called sessions in older Zep SDKs) and from business data you add, so context carries across conversations.
How does MemorySync differ architecturally from Zep?
Zep builds a temporal knowledge graph: entities connected by facts that carry validity dates, extracted asynchronously from episodes. MemorySync stores extracted facts as records the API scopes to an organization, project and end user, links related memories with typed relationships, and replaces a one-value fact when a new value arrives. Zep is the stronger fit for reasoning about how facts changed over time; MemorySync for enforced multi-tenant scoping and identity features on every plan.
Comparisons
Move from Zep to MemorySync
Start on the free tier and evaluate retrieval, isolation, and governance against your own workload.
Start free. No credit card required.