Engineering notes
Write-ups of decisions made while building Norien — why things are the way they are.
- Data
CoinGecko never sets the price
Two providers can answer the same question. Deciding in advance which one is authoritative is what keeps a merged record coherent.
Read → - Reliability
A stale answer beats no answer
What a cache should do when the thing behind it goes down — and why an expiry is two dates, not one.
Read → - Architecture
Immutable versions, mutable head
A registry has to answer two different questions about the same package, and one row cannot do both.
Read → - Architecture
Tools are plugins, not special cases
The moment a runtime knows the name of a tool, every new tool becomes a change to the runtime.
Read → - Architecture
Why the supervisor is a separate process
The registry is a shared catalogue. Shared catalogues must not execute what they list.
Read →