faucet_source_kinesis/lib.rs
1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # faucet-source-kinesis
4//!
5//! AWS Kinesis Data Streams source connector for
6//! [faucet-stream](https://github.com/faucet-hq/faucet-stream): consumes
7//! records from every (or selected) shard with bounded per-shard concurrency,
8//! resumable per-shard sequence-number checkpoints, throttle-aware backoff,
9//! and the standard `idle_termination_secs` / `max_messages` termination
10//! knobs (mirroring the Kafka source).
11//!
12//! Delivery is **at-least-once**: a restart between a sink write and the
13//! bookmark persist re-delivers records at the boundary. Pair with an upsert
14//! sink keyed on `sequence_number` when replays must converge.
15
16mod config;
17mod shard;
18mod state;
19mod stream;
20
21pub use config::{KinesisSourceConfig, OnDecodeError, StartPosition, ValueFormat};
22pub use state::ShardBookmarks;
23pub use stream::KinesisSource;
24
25// Shared connection types, re-exported so users need only this crate.
26pub use faucet_common_kinesis::{KinesisCredentials, build_client};
27
28mod descriptor;
29pub use descriptor::DESCRIPTOR;