Skip to main content

faucet_sink_kinesis/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-sink-kinesis
4//!
5//! AWS Kinesis Data Streams sink connector for
6//! [faucet-stream](https://github.com/faucet-hq/faucet-stream): batched
7//! `PutRecords` writes with configurable partition-key derivation, bounded
8//! concurrent in-flight requests, per-entry partial-failure retry, and
9//! DLQ-routable per-record outcomes.
10//!
11//! Delivery is **at-least-once**: an ambiguous whole-request failure that is
12//! retried can double-write records that actually landed. Key downstream
13//! consumers on an idempotency field when replays must converge.
14
15mod config;
16mod partition;
17mod sink;
18
19pub use config::{
20    ExplicitHashKey, KinesisSinkConfig, MAX_ENTRIES_PER_REQUEST, MAX_RECORD_BYTES,
21    MAX_REQUEST_BYTES, PartitionKey, ValueFormat,
22};
23pub use sink::KinesisSink;
24
25// Shared connection types, re-exported so users need only this crate.
26pub use faucet_common_kinesis::{KinesisCredentials, build_client};
27
28/// The connector's static descriptor (RFC 0013): its capabilities, answered from config alone.
29pub const DESCRIPTOR: faucet_core::ConnectorDescriptor =
30    faucet_core::ConnectorDescriptor::new("kinesis", faucet_core::capabilities::append_only_sink)
31        .with_host_identity(faucet_common_kinesis::host_identity);