SQLite first
A migrated local database keeps deployment and recovery comprehensible. Storage interfaces remain explicit so high-volume telemetry can evolve later.
Architecture
Watchpost separates observation, deterministic state, investigation, and execution. That boundary makes the agent useful without making it the source of operational truth.
Bounded, authenticated observations from posts and integrations.
Typed signals, events, quality, time, and provenance.
Deterministic rules, alert lifecycle, and routing.
Evidence, notes, decisions, actions, and resolution.
Read-only investigation; typed actions behind policy.
Initial implementation
The proposed first node is a Go service with a Nift-built frontend embedded into one binary and SQLite for configuration, inventory, rules, incidents, audit, and modest telemetry.
A migrated local database keeps deployment and recovery comprehensible. Storage interfaces remain explicit so high-volume telemetry can evolve later.
Collection, storage, evaluation, incidents, notifications, investigation, actions, and federation have distinct packages and contracts.
Payload size, label cardinality, retention, retries, queues, and log volume are budgets—not accidental properties discovered under load.
Collector payloads, database migrations, rule semantics, action schemas, and peer protocols receive compatibility tests.
A deliberate boundary
Useful as one node.
Composable as a fleet.
Federation is planned as an additive capability. A node continues collecting and evaluating while disconnected, then reconciles explicitly when connectivity returns.
See the implementation programme