// Package feedkit provides a high-level map of the feedkit package set. // // Most real applications do not import the root package directly. Instead, they // compose the subpackages that handle configuration, collection, processing, // routing, and sinks. // // The usual flow through feedkit is: // // Collect -> Process -> Route -> Emit // // That flow maps to packages like this: // // - config // Loads and validates daemon config. This package owns domain-agnostic // config shape and consistency checks. // // - event // Defines the event.Event envelope shared across sources, processors, // dispatch, and sinks. // // - sources // Defines polling and streaming source interfaces, the source registry, and // reusable source helpers. // // - scheduler // Runs configured sources on a cadence and supervises long-lived stream // workers with restart/fatal handling. // // - processors // Defines the generic processor interface and registry used to build // ordered processor chains. // // - processors/dedupe // Built-in in-memory dedupe processor keyed by Event.ID. // // - processors/normalize // Built-in normalization processor plus helper APIs for raw-to-canonical // event mapping. // // - pipeline // Applies an ordered processor chain between collection and dispatch. // // - dispatch // Compiles routes and fans events out to sinks with per-sink isolation. // // - sinks // Defines sink interfaces, the sink registry, schema-free built-in sinks, // and explicit Postgres factory helpers. // // feedkit is intentionally domain-agnostic. Domain schemas, domain event kinds, // upstream-specific parsing, and daemon lifecycle remain the responsibility of // each concrete application. // // For repository-level overview and usage narrative, see README.md. For // code-level details, each subpackage doc.go is the source of truth for that // package's public API surface and optional helpers. package feedkit