Sink
Sink is the delivery stage of the pipeline. Sinks persist events to storage, forward them to external systems, or trigger notifications.
Built-in Sinks
LogDoc includes production-ready sinks out of the box. Any number of sinks can run in parallel:
ClickHouse — columnar storage for fast analytical queries
Elasticsearch — full-text indexing and Kibana compatibility
S3 / Object Storage — compressed long-term archives
File — plain or JSON lines on the local filesystem
Webhook — HTTP POST to any external endpoint
Telegram / Slack / Email — alert notifications
Delivery Guarantees
Each sink keeps its own delivery queue with at-least-once semantics:
Failed deliveries are retried with exponential backoff
Backpressure protects sinks from event bursts
Dead-letter queue keeps undeliverable events for inspection
Configuration Example
Sinks are declared under the sink key and referenced by pipes:
yaml
sinks:
- name: clickhouse
type: clickhouse
dsn: tcp://ch.internal:9000/logs
batch: 5000
- name: s3-archive
type: s3
bucket: logs-archive
compression: zstd
retention: 365d
Retention is enforced per sink. Combine a short-retention ClickHouse sink for fast queries with an S3 archive sink for compliance-grade history.