Docs and articles
R-56
Technology
Schema-on-Write, Schema-on-Read, Schema-on-Demand
Strict types or document flexibility? The right answer is: both, switchable per type, evolvable without downtime. Here's how we got there.
PAR2 Labs
August 29, 2026
1 min

The 2010s argument between schema-on-write and schema-on-read produced two camps that still hate each other. Both are correct about different problems. Tessera's answer is schema-on-write with type inference: start writing immediately, let structure register itself, and formalise it as your understanding matures.
01
Start loose, by default
Tessera doesn't make you declare a schema before you can insert. Types register automatically on first use, and property types are inferred from the data you actually send. You get real data in first — a whole file of it, if you like — and worry about the model afterwards, which is the order most projects genuinely discover their model in.
02
Inspect what you've got
“Schema-free” doesn't mean “schema-blind.” Read-only introspection lets you see exactly which types and properties exist in the store, so you can look at what a million ingested events actually contain before deciding what the canonical shape should be. That's the governance handle that loose ingestion usually lacks.
Strict-schema-from-day-one only works when you already know your data model.
03
Formalise as you learn
Once you know the shape, you register it — turning an inferred, ad-hoc structure into a declared one your team and your tools can rely on. Historical data keeps the shape it was written with; you're tightening the contract going forward, not rewriting the past.
Schema isn't a decision you're forced to make at table-creation time and live with forever. It's something you let the data reveal, inspect, and then commit to — in that order.
04
The thing nobody likes to admit
Strict-schema-from-day-one only works when you already know your data model. For anything actually new, you don't. The teams that ship the cleanest production systems are the ones that started loose, learned, and tightened — not the ones that wrote a 200-table ERD before writing any code.
Key Takeaways
01
Tessera needs no schema up front: types register on first use and property types are inferred from the data.
02
Read-only introspection shows which types and properties actually exist before you settle on a canonical shape.
03
Registering a shape tightens the contract going forward; historical data keeps the shape it was written with.
04
For anything genuinely new, starting loose, learning and then tightening beats designing the whole model on day one.
PAR2 Labs · Technology
Talk to us