The Obligatory Rant
I saw this tweet yesterday:
SurrealDB 3.0 is coming, mark your calendar! On February 17, 2 PM GMT we'll unveil our latest major release, sharing what's changed under the hood and how it reshapes the way you model and query data, especially for modern, AI-driven applications. 👉 https://t.co/is14NusxF6 pic.twitter.com/Ov4dsQs6my
— SurrealDB (@SurrealDB) February 10, 2026
"Mark your calendar." "We'll unveil." "Reshapes the way you..." — I'm so tired of this.
Every software company does this now. A vague teaser tweet, a countdown, a livestream date, a hype reel — all to tell you what's in a release that already has public beta tags on GitHub. Your time is worth more than sitting through a marketing livestream to find out what changed in a database you use. The information is right there in the repo, in the release notes, in the migration guide. It's open source. You can just... go look.
So that's what I did. I pointed Grok at the GitHub repo, the beta changelogs, and the migration docs, and asked it to summarize everything that's actually new in 3.0. No hype, no "unveiling," no calendar-marking required. You can do this yourself for any open source project — it takes about two minutes and you get dense, straight facts. People are busy. These are tools we use to get work done, not fandoms. Just give us the info.
Here's the full picture.
SurrealDB 3.0 hits general availability on February 17, 2026, following a series of betas (latest: v3.0.0-beta.4 released February 10, 2026). The marketing leans hard on "faster, smarter, more powerful" — but here's what actually changed: the multi-model engine (documents + graphs + vectors + full-text + time-series + relational) has been hardened for production. Experimental features from 2.x are now stable, legacy cruft has been cleaned out, schema tools for derived data have been added, and auth/security/observability all got a polish pass.
It's evolutionary rather than revolutionary — SurrealDB leveled up for reliability and scale, it's not a brand-new database. But the cumulative list of new features, breaking changes, and DX improvements is substantial.
New & Stabilized Features
Many experimental capabilities from 2.x become first-class citizens, with real additions:
- COMPUTED fields — Full replacement for the old
<future>type. Define derived fields that compute on read (e.g.,agefrombirth_date). Cleaner schema, no stored futures. - None type — Proper distinct value (different from
nullin some contexts). - Improved Set type & syntax — Ordered, auto-deduplicated literals (e.g.,
{1,2,1}becomes{1,2}). - COUNT indexes — Constant-time
count()on large tables. - Enhanced full-text search — Multiple writers, OR operations, better compound/range scans.
- ALTER FIELD / updated ALTER TABLE — Granular schema changes.
- ALTER INDEX ... PREPARE REMOVE — Safely drop indexes without surprises.
- Default namespace/database handling — Less boilerplate for simple setups.
- Stabilized record references — Better field-based refs (no longer experimental).
- Graph & recursive query polish — More stability for deep traversals (key for AI reasoning / knowledge graphs).
- HNSW vector index defaults — 32-bit floats (smaller footprint), plus hash-based deduplication.
- Auth improvements — Rate limiting (AuthLimit), permissions on
DEFINE API. - Distributed sequences — Reliable global counters in clusters.
- RPC / SDK enhancements — Client-side transactions, multi-session support, refresh tokens.
- Observability upgrades — Configurable file/JSON logging, slow-query logging, standardized metrics (including RocksDB).
- Strict mode per DB —
DEFINE DATABASE ... STRICT(no global--strictflag). - Better error messages — Many statements now error if resources aren't defined (instead of empty results).
- SurrealDB as pluggable library — Easier embedding/custom datastores.
- Composable HTTP router — For embedders.
- CommunityComposer — Removes global config state.
Performance & Optimization Highlights
While the post isn't just about speed, the gains are real and targeted at AI workloads:
- Significant index scan/order improvements across the board.
- Better vector handling, graph lookups, transaction stability.
- Early-stop iteration, batched commits, reduced heap usage, connection pooling, etc.
These make 3.0 noticeably snappier for large-scale real-time, vector-hybrid, and graph-heavy apps.
Breaking Changes & Removals (Prepare to Migrate)
3.0 includes several cleanups — some painful:
<future>is gone — migrate toCOMPUTED(major redesign for dynamic fields).- Like/fuzzy operators (
~ !~ ?~ *~) removed — usestring::similarity::jaro()/ distance functions. - MTREE vector index gone — switch to HNSW.
LETnow required for parameters (no bare$var = value).GROUP+SPLITforbidden together — refactor with subqueries.SEARCH ANALYZERbecomesFULLTEXT ANALYZER.rand::guid()becomesrand::id();type::thingbecomestype::record.- Stored closures in records disabled by default (can be re-enabled via
SURREAL_CAPS_ALLOW_INSECURE_STORABLE_CLOSURES). - Legacy
SEARCHindexes removed. - FoundationDB backend dropped.
array::rangenow supports range syntax (e.g.,array::range(1..=5)) alongside the existing(start, count)form.- Other:
rand::timerange adjusted, math functions no longer returnNONE, deprecated auth statements gone.
How to Migrate
SurrealDB includes a built-in migration tool for the 2.0 → 3.0 upgrade path, and Surrealist (the official GUI) has migration support in recent versions. The general workflow:
- Run migration diagnostics against your 2.x database to identify breaking changes.
- Address critical issues —
<future>toCOMPUTED, MTREE to HNSW,LETadditions, analyzer renames, etc. - Export your data in a 3.0-compatible format.
- Manually fix anything the tooling can't auto-migrate: futures stored in records,
GROUP+SPLITqueries, removed operators, closures. - Import the
.surqlfile into 3.x and verify.
Beta Docker images/tags are available now for testing (surrealdb/surrealdb:beta or specific beta tags). Stable binaries drop February 17.
Bottom Line
SurrealDB 3.0 delivers a more mature, production-ready multi-model database: better schema tools for AI-derived data, cleaned vector/graph foundations, auth/observability/security polish, and serious performance under the hood. If you're not heavily using futures, old operators, MTREE, or FoundationDB, the upgrade should feel mostly additive. If you are, Surrealist makes migration manageable.
Watch the February 17 GA live stream for the official recap — but this is the no-tease changelog essence from the betas.
Excited? Head to surrealdb.com/releases or GitHub releases for the raw details. Test the betas today!
