v1.3
"Scale out"
2026-07-06 Multi-node configurations reach GA - write throughput that scales with node count behind one endpoint, transactions that span nodes and commit atomically, point-in-time recovery to any second, and rate budgets that grow with your configuration.
- feat Multi-node configurations are generally available. Pick a node count when you build your configuration: write throughput scales with nodes (~2x measured at 2 nodes), data distributes across nodes automatically table by table, and your application keeps talking to a single endpoint with a single key - no client-side routing, no code changes. Each node can optionally carry its own synchronized standby through the same resilience configurations as single-node.
- feat Atomic cross-node transactions. BEGIN / COMMIT / ROLLBACK over the SQL endpoint now spans tables on different nodes with the same all-or-nothing guarantee as a single node: every write in the transaction lands, or none do. ROLLBACK is idempotent and always safe to call; a lost transaction surfaces as a clean 409 with zero partial writes. See the new Transactions reference in the docs.
- feat Point-in-time recovery: restore an instance to any second, with integrity verification on the restored data before it serves traffic. Driven from the console or the API.
- feat Rate budgets now scale with node count. Per-key budgets (requests/sec, bytes/sec, natural-language queries/sec, concurrent queries) multiply by the number of nodes in your configuration, and the full aggregate budget is delivered through the single endpoint. 429 responses now carry an X-OC-Limit-Hit header naming exactly which budget you exhausted.
- docs New docs pages: Transactions (lifecycle, error handling, the retry pattern) and Multi-node configurations (what you get, choosing a node count, growing later). The rate-limits reference is rewritten around the four per-key budgets - and why batch endpoints (~18x measured throughput vs single-row calls) are the first lever to pull.
v1.2
"Scale ceiling"
2026-06-08 Vectors scale past 10M per tenant, graphs learn embeddings, full-text reduces to canonical lemmas, and a multi-writer cluster preview opens to Enterprise opt-in.
- feat IVF and IVF-PQ vector indexes land end-to-end. IVF partitions vectors by inverted-file cells for 10M+ scale per tenant; IVF-PQ adds residualised product quantization per cell (the Jegou 2011 path) for 64× memory savings at D=128 and 768× at D=1536 OpenAI ada-002 dims. recall@10 = 0.948 at nprobe=4 on the synthetic acceptance floor. 1M IVF bulk-load in 80 s.
- feat Binary quantization (32× memory savings) and PQ quantization (64× at the headline config) attach to HNSW or IVF as separate index kinds. Pick the recall/memory tradeoff per-collection without rewriting your client code.
- feat GraphSAGE attribute-aware node embeddings ship with three aggregator choices: Mean (fastest), MaxPool (best representational capacity per parameter), and LSTM (sequence-aware, deterministic per-(node, layer) shuffle so retrains converge to the same vector). Pairs with Node2Vec persistence for downstream similarity search.
- feat Full-text lemmatization in 9 languages — English, Spanish, French, German, Italian, Portuguese, Russian, Dutch, Swedish — reduces inflected forms to a dictionary-backed canonical lemma. Higher precision than Snowball stemming on natural-language fields. Stemming for 18 languages remains available as a separate analyzer step. ICU + geo tokenizer ship alongside for mixed-script and location-aware queries.
- feat Cypher v3 closes: CALL subqueries, nested FOREACH, list comprehensions (row-time), MERGE, DELETE, CREATE relation, and multi-hop undirected matches. The DELETE / CREATE path lands first; MERGE follows the same idempotent contract you'd expect from a Cypher implementation.
- feat Materialized views with on-demand refresh: install_materialized_view computes the initial materialization, refresh_materialized_view re-runs the definition with an atomic overwrite. POST install / POST :name/refresh / GET :name. Incremental refresh stays on the roadmap.
- feat Foreign keys and CHECK constraints (Phase B). FK on-delete supports NoAction, Restrict, and SetNull at write-time; Cascade and SetDefault are deferred. CHECK expression language: literals, =/!=/</<=/>/>=, AND/OR/NOT, IS [NOT] NULL, IN — with 3-valued logic.
- feat JOIN cap raised from 5 to 32 tables. Left-deep planner; analytics rollups across a long dimension chain no longer hit the ceiling.
- feat Multi-writer cluster replication preview opens to Enterprise tenants via an admin opt-in. Active-passive replication remains the default for every other tenant — opt in only when you actually need writes accepted in every region. Preview: SLA is bespoke, production hardening continues.
- feat Serializable MVCC Phase B (preview): per-key version chains with !ts prefix-scan-from-newest give O(1) conflict detection at ~28-byte overhead per version. Range-serializability via gap locks is Phase C work.
- feat PostgreSQL ingest connector v1 (POST /v1/.../ingest/postgres/sync) pulls rows from an existing Postgres source into your OriginChain tenant — no separate ETL service needed.
- feat Python SDK adds typed namespaces: oc.sql, oc.vector, oc.fts, oc.graph. IDE autocomplete works against the shape you're actually using.
v1.1
"Hardening"
2026-05-03 Transactional email, crash-injection in CI, shape-level diagnostics, and a fistful of dashboard fixes.
- feat Forgot- and reset-password flow shipped end-to-end. Request a reset link from /forgot, set a new password from /reset-password - single-use, time-limited tokens delivered through our managed transactional email service.
- feat Magic-link login and password-reset emails now go through our managed transactional email service. Delivery is signed, DKIM-authenticated, and falls back to a journal log if the provider has a hiccup so you never lose access.
- feat Engine-level shape diagnostics: GET /diagnostics/shape-stats returns per-shape p50/p95/p99 latency, queries-per-second over the last minute, total-call count, and per-shape storage bytes. Plug it into any Prometheus-style scraper.
- feat Crash-injection harness lives in CI. Every commit crashes the engine at four critical durability boundaries twenty times each - recovered state must be a prefix of a known-good model. 4×20 = 80 green on every push.
- feat Optimiser landed on the hot path: cost-based shape routing now picks the cheapest plan from a small fixed menu instead of always taking the first match. No tuning knobs to learn.
- feat Synchronous-replica catch-up now uses an explicit sync state-machine - followers report replication delay in real time and the primary refuses to ack writes until the standby is caught up.
- feat Configuration-upgrade flow in the dashboard: change compute configuration from Single-zone → HA → HA+ without recreating the instance. Rolling resize, no downtime, prorated on the next bill.
- fix Billing math: monthly spend now includes only running instances. Stopped instances no longer accrue compute charges in the current-cycle estimate (storage still does, since data still lives on disk).
- fix Admin login: the auth-gate IIFE no longer fires on / or /magic-link, so the reload loop reported on a few accounts is structurally impossible. Login form is always interactive, even before boot-status comes back.
- fix Dashboard /app/backups: hoisted the tenant-ownership check out of an N+1 loop and translated AbortError into a friendly retry banner. List-backups no longer SIGNAL_ABORTED on instances with hundreds of backups.
- fix Console snapshot list now caches results for 30 s and the SDK times out at 60 s - slow snapshot directories no longer hang the page.
- fix Public docs: scrubbed a leaked tenant ULID and replaced with the acme.* placeholder used elsewhere.
- fix Crash-replay test corpus expanded - every persisted shape now has a deterministic replay test.
- perf Per-repo CI: each crate, each SDK, and the frontend run in their own pipeline. Builds that don't touch a target skip its tests entirely - typical PR feedback dropped from ~9 min to ~2 min.
- docs New blog post: "Crash at every durability boundary" - how the new crash-injection harness works and why it caught two real bugs the day it landed.
- docs New blog post: "One commit, every shape" - how multi-shape writes commit atomically as a single durable unit.
- docs New blog post: a deep-dive on how the cost-based optimiser picks shape routes.
v1.0.1
"Outreach"
2026-05-02 Marketing surface, MCP server, and an OpenAPI 3.1 spec - built so AI agents and humans can both read OriginChain.
- feat @originchain/mcp-server published - a Model Context Protocol server that exposes /rows, /query, /ask, /watch, and the add-on shapes to any MCP-aware client (Claude Desktop, Cursor, etc.). Drop in your bearer, point at your endpoint, you're live.
- feat OpenAPI 3.1 spec published at /openapi.json - every public HTTP endpoint, every schema, every error code. Generate clients in any language, or paste it straight into your editor's HTTP plugin.
- feat Eight head-to-head comparison pages: OriginChain vs Postgres, MongoDB, Neon, Supabase, Pinecone, Qdrant, Weaviate, and Milvus. Honest about where each tool wins and where ours does.
- feat Site-wide search via Pagefind. Hit the search input on any page, get instant results across docs, blogs, and marketing pages - fully static, no backend, works offline once cached.
- feat Real /status page wired to the same metrics the on-call dashboard reads. Per-region uptime, 30-day incident history, current SLO burn.
- feat Schema delete in the dashboard: drop a key shape from the console with a typed-confirmation guard. Backed by new DELETE endpoints (DELETE /v1/schemas/:name with cascade flag).
- feat Per-page Open Graph images: every marketing page renders a tailored OG card with its own title and category, so links look right on Slack, Twitter, LinkedIn, and Discord.
- feat Mobile hamburger navigation across the marketing site, with dark theme as the default. Light theme toggle still available.
- feat IndexNow ping on every deploy - search engines hear about new docs and blog posts within seconds of merge.
- feat Three new long-form engineering blog posts on storage internals, replication, and the new add-on architecture.
- fix Go SDK: corrected the module path to github.com/originchain-ai/originchain-go. `go get` and `go mod tidy` now resolve correctly.
v1.0
"Add-ons"
2026-05-02 Seven new paid add-ons attach to any configuration - opt in only what your workload needs.
- feat SQL Pro add-on ($49/mo): GROUP BY with COUNT/SUM/AVG/MIN/MAX, INNER + LEFT/RIGHT/FULL OUTER joins, HAVING filters, and chained 3+ table joins (left-deep, up to five tables).
- feat Vector Search add-on ($79/mo + $0.0002 per topk): HNSW with cosine, dot, L2 metrics and tunable speed/recall. Default high_recall mode hits recall@10 = 0.96 at 100k vectors with p99 109 ms; fast mode runs p99 37 ms at recall 0.69. Filtered topk via metadata equality, f32 SIMD distance kernels, deserialized graph cache.
- feat Full-Text Pro add-on ($49/mo): Lucene-default BM25 (k1=1.2, b=0.75), phrase queries via position-list intersection, UAX #29 Unicode tokenizer, and Snowball stemming for 18 languages.
- feat Graph add-on ($59/mo): forward and reverse one-hop neighbors (correct on self-relations), BFS up to a configurable max depth, path reachability, and weighted shortest path (Dijkstra) with caller-supplied weight functions.
- feat Transactions add-on ($99/mo): multi-row snapshot-isolation transactions with optimistic conflict detection - begin / get / put / delete / commit / abort across multiple rows.
- feat Intra-Segment PITR add-on ($149/mo): sub-second point-in-time recovery via a continuous backup stream with embedded microsecond timestamps.
- feat Multi-Writer Cluster add-on (Enterprise): a multi-node write cluster with TLS transport, durable persistence, and bespoke setup by the OriginChain team.
v1.0
"Live deploy"
2026-05-01 OriginChain reaches general availability - single-tenant, region-isolated, sub-100 ms in-region p99.
- feat Single-tenant region-isolated compute live in Asia Pacific (Mumbai). Each instance gets a dedicated instance, durable transaction logging, and an HTTPS endpoint provisioned in about two minutes.
- feat Synchronous replication on every paid configuration: RPO = 0 - every commit is acknowledged by the standby before the client sees success.
- feat Three compute configurations (Single-zone, HA, HA+) and four storage configurations (20 GB to 2 TB). Resize compute and storage independently, hot, with no downtime.
- feat Console-driven bearer rotation with a 60-second grace window for rolling deploys.
- perf p99 read latency under 8 ms in-region on HA and HA+; cached /ask responses return in under 50 ms.
v0.12
"Failover"
2026-04-30 Promoted-follower failover verified end-to-end on live infrastructure.
- feat Snapshot-bootstrap: a new follower can join a running primary without operator intervention, receiving a consistent snapshot before tailing live frames.
- feat Failover preserves full state - promoted follower serves reads and writes immediately on takeover.
- perf Recovery time objective (RTO) measured at approximately 25 seconds in our drills.
- perf Active-passive synchronous replication remains the production path; no in-flight commits lost on failover.
v0.11
"Initial GA"
2026-04-23 Engine, managed console, and Razorpay billing go live.
- feat Managed console: signup, region selection, configuration selection, instance provisioning, metrics and audit log access.
- feat Razorpay billing integration: USD pricing, monthly and annual cycles, prorated mid-cycle changes, hosted card capture for trials.
- feat 7-day Single-zone trial - one per account, real endpoint with real backups, no charge during the trial.
- feat Encrypted nightly backups with daily integrity checks; continuous-archive point-in-time recovery on every paid configuration.
- feat Python SDK - fully typed, sync and async, with helpers for /rows, /query, /ask, /watch, /sql, /vector, /fts, /graph.
v0.10
"Compile"
2026-04-22 Natural-language compile path runs fully in-region with no API key in the customer's path.
- feat Every /ask call compiles in the same region as the tenant's instance. Credentials are scoped per instance and handled for you - no LLM API keys anywhere in the customer's stack.
- feat Schema prompt caching: repeated /ask calls with the same catalog pay the cached-read rate (~90% discount on repeated catalog tokens).
- feat Per-instance scope locked to a single model identifier - no other foundation models, no cross-tenant access.
- perf Shared runtime + per-region inference client cache; SDK startup cost is paid once per process, not per /ask.
v0.8
"Production"
2026-03-20 Hot-path concurrency, atomic backups, chaos and load harnesses.
- feat MVCC-lite on hot-path writes - conflicting updates serialize per row without blocking reads.
- feat oc backup create / oc backup restore - atomic at the filesystem level, with daily integrity checks.
- feat Chaos and load harnesses run on every build (process kill, disk full, interrupted-write recovery; 10k rps steady-state).
- feat HTTP body limit enforced at 8 MiB; rate limiter is a real token bucket with Retry-After headers.
- perf Concurrent-read path reworked to remove a hot-index bottleneck - p50 reads down ~18%.
v0.7
"Reactive"
2026-02-12 Live views over Server-Sent Events; durable plan cache.
- feat New /v1/watch endpoint - Server-Sent Events stream of updates for a live expression. Same protocol across every region and configuration.
- feat Plan cache spills to disk; cold start reloads hot plans without re-invoking the LLM.
- perf Catalog lookup is lock-free; consult cost dropped to ~12 µs.
v0.6
"Consolidation"
2026-01-20 Single managed engine replaces the multi-engine split.
- breaking Storage consolidated onto a single managed engine - one recovery path, one backup path, one mental model. Earlier multi-engine split removed.
- breaking Parquet, Arrow, DataFusion, and KuzuDB dependencies dropped.
- feat Plans compile down to index, ref-walk, and range-scan primitives on the unified store. Cost-based routing retired - no routing to do.
v0.5
"First release"
2025-12-18 Initial public release.
- feat HTTP ingress, row-keyed store, and the natural-language to query-plan compiler land for the first time.
- docs Specification document published; HTTP API documented.