Docs and articles
R-47
Technology
Why We Built a Hyperedge-Native Database from Scratch
Property graphs treat every relationship as a binary edge. That model breaks the moment a single fact has three or more participants. Here's what changed when we stopped pretending otherwise.
PAR2 Labs
August 29, 2026
2 min

Every property graph database we evaluated forced us to model a four-party financial transfer as four separate edges plus a synthetic intermediary node. That's not a graph; that's a record nobody can audit cleanly. Tessera was born out of refusing to keep translating the world's data into a model the world doesn't have.
01
The shape of the problem
Consider a wire transfer. A real one. It has a sender, a receiver, a correspondent bank, an ultimate beneficiary, an amount, a currency, a transaction reference, a value date, and a confidence level (because some fields arrive incomplete and reconciliation runs later). That's one fact about the world. One.
In a property graph you model it as: a Transfer node with properties, plus four relationship edges connecting it to each party. To answer “who was the beneficiary of transfer X” you traverse (:Transfer)-[:BENEFICIARY]->(:Party). Fine. Now answer “list every transfer where the sender's correspondent bank is also the beneficiary's correspondent bank.” Suddenly you're writing five-line Cypher patterns with multiple sub-traversals because the binary-edge model can't express the relationship as a single thing.
02
What hyperedges actually are
A hyperedge is a relationship that connects any number of endpoints, each labelled with a role. To model that same transfer in a binary-edge graph, you're forced to invent a middle node and hang four edges off it:
cypher
// Binary-edge graphs force a reified middle node:
CREATE (t:Transfer {amount: 250000, currency: 'USD'})
CREATE (t)-[:SENDER]->(:Party {id: 'alice'})
CREATE (t)-[:RECEIVER]->(:Party {id: 'bob'})
CREATE (t)-[:INTERMEDIARY]->(:Party {id: 'corr-bank'})
CREATE (t)-[:BENEFICIARY]->(:Party {id: 'ultimate'})In Tessera, that transfer is a single hyperedge: one typed fact that links all four parties by named role — sender, receiver, intermediary, ultimate beneficiary — and carries its own properties, confidence, and valid-time. Named roles, real properties, real confidence, real time. The thing the world has, modelled as the thing it is.
We rejected them because we kept building the same translation layer on top of them, and that translation layer was where the bugs lived.
03
Why this was the right bet
Three things become trivial that were not before:
N-ary queries. “Find transfers where sender and beneficiary share an intermediary” is one pattern, not five.
Identity over time. The same transfer, observed twice with corrected information, deduplicates to the same content-addressed hash. No reconciliation pipeline.
Provenance. Hyperedges carry confidence and bitemporal stamps, so the audit trail isn't a parallel system — it's the data.
We didn't reject property graphs because they were old. We rejected them because we kept building the same translation layer on top of them, and that translation layer was where the bugs lived.
04
What it cost us
Honest answer: most engineers think in binary edges. Cypher developers had to relearn patterns. We invested heavily in a Cypher-to-hyperedge translator so existing skills port, but the mental shift is real. The first month is a small tax. After that, your queries are shorter and your audit logs make sense.
05
What this unlocked downstream
Because every fact is a single hyperedge with explicit endpoints, content-addressed identity, bitemporal stamps, and confidence — the rest of the system gets simpler. SQL queries read properties off hyperedges. Time-series views project the timestamps. Vector search embeds text properties. Graph algorithms traverse endpoints. Nothing is duplicated, nothing drifts. One model, five access patterns.
That's the bet. Six months in, we'd take it again.
Key Takeaways
01
A property graph turns a many-party fact into a synthetic middle node with one binary edge per party.
02
A hyperedge links any number of endpoints by named role and carries its own properties, confidence and valid-time.
03
N-ary queries, identity over time and provenance become single patterns instead of a translation layer.
04
The cost is a mental shift for engineers used to binary edges, eased by a Cypher-to-hyperedge translator.
PAR2 Labs · Technology
Talk to us