25 lines
846 B
Go
25 lines
846 B
Go
package sinks
|
|
|
|
import "gitea.maximumdirect.net/ejr/feedkit/config"
|
|
|
|
// RegisterBuiltins registers sink drivers included in this binary.
|
|
//
|
|
// In feedkit, these are "infrastructure primitives" — they are not domain-specific.
|
|
// Individual daemons can choose to call this (or register their own custom sinks).
|
|
func RegisterBuiltins(r *Registry) {
|
|
// Stdout sink: great for debugging, piping to jq, etc.
|
|
r.Register("stdout", func(cfg config.SinkConfig) (Sink, error) {
|
|
return NewStdoutSink(cfg.Name), nil
|
|
})
|
|
|
|
// Postgres sink: persists events durably.
|
|
r.Register("postgres", func(cfg config.SinkConfig) (Sink, error) {
|
|
return NewPostgresSinkFromConfig(cfg)
|
|
})
|
|
|
|
// NATS sink: publishes events to a broker for downstream consumers.
|
|
r.Register("nats", func(cfg config.SinkConfig) (Sink, error) {
|
|
return NewNATSSinkFromConfig(cfg)
|
|
})
|
|
}
|