Skip to main content

Architecture decision records

Why the integration is the way it is, and what it was before. CLAUDE.md states the rules that follow from these; a record keeps the reasoning, the numbers it rested on, and the alternatives that were turned down, so a later change can weigh them rather than rediscover them.

A record is not edited once accepted, except to mark it superseded by a newer one. Releases are named by their version (2026.11.0).

#DecisionSince
0001Entity names state their window; a released id is never reused2026.11.0
0002RW reads the run ending on the hour, not HH:502026.11.0
0003RW's 10-minute runs feed the dry streak, nothing else2026.11.0
0004RW and SF are read in their HDF5 edition2026.10.1
0005Running totals are keyed on the release, and RW backs the main one2026.11.0
0006Rain events are their own opt-in entity, recomputed every release2026.11.0
0007Staleness is a deadline on the overdue release2026.9.0
0008The grid lookup floors from the outer corner2026.10.0
0009The full rolling-hour series is built from RV, not RS2026.11.0
0010Each product reads its cell on the grid its file describes2026.11.0
0011Gaps in the dry-streak source are checked against RW's hours2026.11.0
0012Rain events have a precipitation type only once it is measured2026.11.0
0013Rain warnings are subentries that filter the rain-events view2026.11.0