storage-lists-as-json-columns

IN premise

Antecedents, outlist, nogood node sets, and metadata dicts are stored as JSON text columns rather than normalized join tables, simplifying the schema at the cost of individual field queryability.

Summary

The system stores complex relational data like dependency lists and metadata as JSON strings packed into single database columns instead of breaking them out into separate linked tables. This keeps the database schema simple with fewer tables and joins, but means you cannot efficiently query or filter on individual items within those packed fields — a tradeoff that works fine as long as the system mostly reads and writes these structures whole rather than searching inside them.

Details

Sourceentries/2026/04/24/reasons_lib-storage.md