Connectors / Streaming & queues
AWS Kinesis
sinkAWS Kinesis Data Streams producer with partial-failure retry
Install
cargo install faucet-cli --features sink-kinesis faucet init --sink kinesis
# Cargo.toml — use it as a library cargo add faucet-sink-kinesis
Starter config
sink:
type: kinesis
config:
stream_name: "" # REQUIRED — Kinesis Data Stream name.
# region: "" # AWS region.
# endpoint_url: "" # Custom endpoint URL for LocalStack / VPC endpoints.
# credentials: { type: default } # one of: default, profile, access_key, assume_role, web_identity
# --- Alternative variants — replace the block above with one of these ---
# type: profile
# config:
# name: "" # REQUIRED
#
# type: access_key
# config:
# access_key_id: "" # REQUIRED
# secret_access_key: "" # REQUIRED
# session_token: ""
#
# type: assume_role
# config:
# role_arn: "" # REQUIRED
# session_name: ""
# external_id: ""
#
# type: web_identity
# partition_key: { type: random } # one of: random, field, jsonpath, hash, static
# --- Alternative variants — replace the block above with one of these ---
# type: field
# name: "" # REQUIRED
#
# type: jsonpath
# path: "" # REQUIRED
#
# type: hash
# path: "" # REQUIRED
#
# type: static
# value: "" # REQUIRED
# explicit_hash_key: { type: none } # one of: none, field, jsonpath
# --- Alternative variants — replace the block above with one of these ---
# type: field
# name: "" # REQUIRED
#
# type: jsonpath
# path: "" # REQUIRED
# value_format: null # How each record is encoded into the Kinesis `Data` blob.
# batch_size: 500 # Max entries per `PutRecords` request (1–500).
# max_record_size_bytes: 1048576 # Per-record size ceiling in bytes (data + partition key; ≤ 1 MiB).
# max_request_bytes: 5242880 # Per-request size ceiling in bytes (≤ 5 MiB); batches re-chunk to it.
# concurrency: 4 # Bounded concurrent in-flight `PutRecords` requests.
# retry: null # Per-record retry for partial failures, grouped (#654 M20).
# retry_max_attempts: 5 # **Deprecated** — use `retry.max_attempts`.
# retry_initial_backoff_ms: 100 # **Deprecated** — use `retry.initial_backoff_ms`.
# retry_max_backoff_ms: 30000 # **Deprecated** — use `retry.max_backoff_ms`.
Capabilities
| Delivery | At-least-once |
|---|---|
| Write modes | append |
| Exactly-once writes | No |
| Schema evolution | No |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
stream_namerequired | string | — | Kinesis Data Stream name. |
region | string | — | AWS region. None uses the SDK default chain. |
endpoint_url | string | — | Custom endpoint URL for LocalStack / VPC endpoints. |
credentials | object | type: default | AWS credentials. Defaults to the SDK default provider chain. |
partition_key | object | type: random | Partition-key derivation strategy. Default: random. |
explicit_hash_key | object | type: none | Optional explicit hash-key override. |
value_format | object | json | Record payload encoding. Default: json. |
batch_size | integer | 500 | Max entries per PutRecords request (1–500). Default 500. |
max_record_size_bytes | integer | 1048576 | Per-record size ceiling in bytes (data + partition key; ≤ 1 MiB). Oversized records fail per-record (DLQ-routable), never sent. |
max_request_bytes | integer | 5242880 | Per-request size ceiling in bytes (≤ 5 MiB); batches re-chunk to it. |
concurrency | integer | 4 | Bounded concurrent in-flight PutRecords requests. Default 4. |
retry | object | — | Per-record retry for partial failures, grouped (#654 M20). When present it supersedes the three deprecated flat retry_* keys below. |
retry_max_attempts | integer | 5 | **Deprecated** — use retry.max_attempts. |
retry_initial_backoff_ms | integer | 100 | **Deprecated** — use retry.initial_backoff_ms. |
retry_max_backoff_ms | integer | 30000 | **Deprecated** — use retry.max_backoff_ms. |
Get started
Your first pipeline runs in five minutes.
Install the CLI, scaffold a config, and move real data — nothing external to stand up.
curl -LsSf https://github.com/faucet-hq/faucet-stream/releases/latest/download/faucet-cli-installer.sh | sh brew install faucet-hq/faucet-stream/faucet-cli