Delivers to your own Kafka cluster.{
"type": "external_kafka",
"uid": "sk-003",
"name": "my-external-topic",
"bootstrap_servers": "broker1.example.com:9092,broker2.example.com:9092",
"username_secret_id": "my-kafka-username",
"password_secret_id": "my-kafka-password",
"sasl_mechanism": "PLAIN"
}
| Field | Type | Required | Description |
|---|
type | "external_kafka" | Yes | Must be external_kafka |
uid | string | No | Auto-generated if omitted |
name | string | Yes | Kafka topic name on your cluster |
bootstrap_servers | string | Yes | Comma-separated broker addresses |
username_secret_id | string | Yes | Organization secret id for the SASL username |
password_secret_id | string | Yes | Organization secret id for the SASL password |
security_protocol | string | No | Always SASL_SSL (not configurable) |
sasl_mechanism | string | No | PLAIN or SCRAM-SHA-512. Default: PLAIN |
If a referenced secret is updated after deployment, the sink is flagged as stale. You must redeploy for the new secret value to take effect.
Beam pipelines produce messages up to 1 MB in size. Make sure the target topic’s max.message.bytes is set to at least 1 MB, or deliveries may be rejected by your cluster.
Delivers data as POST requests to an HTTPS endpoint.{
"type": "webhook",
"uid": "sk-004",
"name": "my-webhook",
"url": "https://example.com/webhook/receive",
"hash_key": "MY_WEBHOOK_SIGNING_KEY",
"enable_http_encoding": false
}
| Field | Type | Required | Description |
|---|
type | "webhook" | Yes | Must be webhook |
uid | string | No | Auto-generated if omitted |
name | string | Yes | Descriptive name for the webhook sink |
url | string | Yes | HTTPS endpoint URL. Must use https:// |
hash_key | string | No | Organization secret id holding the HMAC signing key. When set, Beam signs each request — see Webhook authentication |
enable_http_encoding | boolean | No | When true, Beam compresses each request body with zstd and sets Content-Encoding: zstd on the POST. Your endpoint must decompress the payload before parsing. Default: false |
HTTP URLs are not supported — the URL must use HTTPS.
If the hash_key secret value is rotated after deployment, the sink is flagged as stale. You must redeploy for the new value to take effect.
Publishes each record to a NATS JetStream subject on your own broker.{
"type": "nats_jetstream",
"uid": "sk-005",
"name": "my-jetstream",
"url": "nats://broker.example.com:4222",
"subject": "allium.ethereum.blocks",
"token_secret_id": "MY_NATS_TOKEN"
}
| Field | Type | Required | Description |
|---|
type | "nats_jetstream" | Yes | Must be nats_jetstream |
uid | string | No | Auto-generated if omitted |
name | string | Yes | Descriptive name for the sink |
url | string | Yes | Broker URL, e.g. nats://broker.example.com:4222 |
subject | string | Yes | JetStream subject the pipeline publishes to, e.g. allium.ethereum.blocks |
token_secret_id | string | No | Organization secret id holding the auth token. When omitted, the sink connects to the broker without authentication |
Do not include the token in url. If token_secret_id is set, Beam injects the resolved token into the connection at deploy time. For example, with a token secret resolving to your-token, nats://your-broker.example.com:4222 becomes nats://your-token@your-broker.example.com:4222 before the publisher connects.
If the token_secret_id secret value is rotated after deployment, you must redeploy for the new value to take effect.