1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Amazon Kinesis Data Streams broker implementation for `RustStream`.
//!
//! Handlers, routers, codecs, and middleware come from the framework; this crate supplies
//! the transport over the official [`aws-sdk-kinesis`](https://docs.rs/aws-sdk-kinesis) -
//! plus the coordination the vendor's consumer library provides on other platforms and the
//! Rust SDK does not: shard discovery across splits and merges, shard leasing with fencing,
//! and per-shard checkpointing.
//!
//! - Acknowledgement is a checkpoint: `ack` marks a record handled, and the per-shard
//! watermark advances (and persists) once every earlier record is handled too - a
//! checkpoint implies everything before it. An unacknowledged record wedges the watermark,
//! so the shard replays from it when the lease is next taken: at-least-once, always.
//! - Leases live in a pluggable [`LeaseStore`]: the built-in in-process store is correct for
//! a single service instance; the `DynamoDB` store behind the `dynamodb-lease` feature lets
//! multiple instances share the shards with conditional-write fencing.
//! - Children of a split or merge start only after their parents are fully consumed, which
//! is what keeps per-key ordering across resharding.
//! - Where a subscription starts is one vocabulary, not two: a shard resumes from its stored
//! checkpoint and otherwise opens at the tip, and [`KinesisPosition`] repositions it -
//! through the framework's `start_at(..)` clause at startup, or the `Seekable` capability
//! while it runs.
//! - Shared polling only in this release: enhanced fan-out is a different resume machine on
//! an HTTP/2 push stream with no local emulator support, and is deliberately deferred.
//! KPL-aggregated records are refused loudly rather than delivered as opaque protobuf.
pub use ;
pub use DynamoLeaseStore;
pub use KinesisError;
pub use ;
pub use ;
pub use ;
pub use KinesisStream;
pub use ;