Notes from building Meridian Stack

Engineering write-ups, mostly about the parts that were harder than expected.

12 September 2026

Cursor-based sync is harder than it looks

We started with a batch importer and spent six weeks regretting it. The problem was never throughput — it was that a partial failure left the graph in a state that no retry could reason about. This is the story of moving to cursor-based incremental pull, and the two invariants that made idempotent upserts actually safe.

8 min read · engineering
28 August 2026

Don't flatten permissions

The easiest thing to do when indexing a source system is to collapse everything into a single "can this user see it" bit. It is also the fastest way to leak. We keep the original permission shape and evaluate it at query time, which costs more and is worth it.

6 min read · security
7 August 2026

Citations are a product decision, not a feature

An answer without provenance is a rumour. Every response from our query surface carries the objects it was assembled from, and we refuse to render an answer whose citations cannot be resolved. That constraint shaped the whole retrieval design.

5 min read · product