TunnelVision

0002 — Use GRDB/SQLite for history instead of SwiftData/Core Data

Context

History is a high-rate, append-heavy workload: potentially thousands of small packet-metadata rows per second, written by the extension and read by the app — two processes sharing an App Group container. The stack default for iOS is SwiftData (or Core Data).

Decision

Use GRDB.swift over SQLite with WAL mode. It is the single third-party dependency (justified here), used from a FlowStore actor. See ../spec/persistence.md.

Consequences

Alternatives considered