BlitzGraph only
⬡
Multi-kind entities
A User can also be an Admin and a Moderator, simultaneously. No role tables, no migrations. Entities evolve by gaining and losing kinds over time.
BlitzGraph only
⟲
Bidirectional relationships
"Who wrote this post?" and "What did this user write?" Same cost, same index, O(1) both ways. No reverse-lookup tables, no extra queries.
BlitzGraph only
⬚
Typed JSON queries (BQL)
Your agent composes query objects, not SQL strings. Filters, nested expands, projections, and full-text search in one request. Zero N+1.
⌥
Rich content types
EMAIL, URL, DATE, JSON, FLEX. Not just varchar. Built-in validation at the database level. Your schema describes what the data actually is.
⟷
Referential integrity
Cardinality constraints and onDelete policies (cascade, restrict, unlink) enforced at the engine level. Your graph stays consistent by default.
∿
Built-in full-text search
Native BM25 engine with typeahead, prefix, exact, and all-stems modes. No Elasticsearch, no external service. Works inside graph traversals.
⊕
Smart transactions
Mutations are topologically sorted and validated on the final result, not line by line. Business rules check the end state of the whole transaction, so complex multi-entity operations just work. All or nothing, always consistent.
⌂
Business logic in the database
Validations, computed fields, transforms, and effects, all defined in the schema. Your business rules live where the data lives, not scattered across middleware and app code.