Document event and Postgres integration contracts

This commit is contained in:
2026-06-10 20:12:27 +00:00
parent 4ac4e401ed
commit abb8f218ec
6 changed files with 658 additions and 407 deletions

View File

@@ -4,7 +4,9 @@
This document defines `weatherfeeder`'s development architecture and invariants for maintainers and LLM coding agents. It describes how the implemented system is built and how future changes should preserve its boundaries.
This is an inward-facing policy document. User-facing wire contracts belong in [`API.md`](../../API.md), and future work belongs under [`docs/roadmap/`](../roadmap/).
This is an inward-facing policy document. User-facing wire contracts belong in
[`docs/integrations/events.md`](../integrations/events.md), and future work
belongs under [`docs/roadmap/`](../roadmap/).
## Project Shape
@@ -98,7 +100,10 @@ The daemon's own state is in-process:
- source instances may keep HTTP conditional request state through feedkit HTTP source helpers;
- scheduler and dispatcher state is not persisted by `weatherfeeder`.
Durable persistence is an external sink concern. The Postgres table contract is documented in `internal/sinks/postgres/doc.go`; the consumer-facing event contract is documented in [`API.md`](../../API.md).
Durable persistence is an external sink concern. The Postgres table contract is
documented in [`docs/integrations/postgres.md`](../integrations/postgres.md);
the consumer-facing event contract is documented in
[`docs/integrations/events.md`](../integrations/events.md).
## Configuration and CLI Boundaries
@@ -112,7 +117,9 @@ Configuration shape is owned by feedkit's config package:
Weatherfeeder-specific config policy belongs in source and sink constructors, registry setup, and tests. Do not spread config parsing through domain model or normalizer packages.
If dedicated `docs/config.md` or `docs/cli.md` files are added later, they should become the canonical user/operator references. This policy should stay architectural and avoid duplicating those references.
[`docs/config.md`](../config.md) and [`docs/cli.md`](../cli.md) are the
canonical user/operator references. This policy should stay architectural and
avoid duplicating those references.
## Errors, Logging, and Diagnostics