For the complete documentation index, see llms.txt. This page is also available as Markdown.

ScyllaDB

Connect & Ingest data from / to a ScyllaDB database

Setup

The following credentials keys are accepted:

  • host (required) -> The hostname / ip of the instance (contact point)

  • user (optional) -> The username to access the instance (alias: username)

  • password (optional) -> The password to access the instance

  • port (optional) -> The port of the instance. Default is 9042.

  • keyspace (optional) -> The default keyspace to use (aliases: database, schema)

  • hosts (optional) -> Additional contact points (comma-separated hostnames or host:port) for multi-node clusters

  • local_dc (optional) -> Local datacenter name for DC-aware + token-aware routing (alias: datacenter). Recommended for multi-node / multi-DC clusters.

  • consistency (optional) -> Default write/read consistency. Examples: ONE, LOCAL_ONE, QUORUM, LOCAL_QUORUM, ALL. Default is driver default (QUORUM).

  • timeout (optional) -> Query timeout in seconds. Default is 15.

  • connect_timeout (optional) -> Connection setup timeout in seconds. Defaults to timeout.

  • disable_initial_host_lookup (optional) -> If true (default), do not look up peer hosts from the control connection. Useful for Docker/Kubernetes where broadcast addresses are not reachable. Set false on multi-node bare-metal clusters for peer discovery / failover.

  • num_conns (optional) -> Number of connections per host. Default is 2.

  • page_size (optional) -> CQL page size for reads. Default is 5000.

  • insert_concurrency (optional) -> Concurrent insert workers for bulk writes. Default is 16.

  • tls (optional) -> whether to use TLS for connecting (true / false / skip-verify)

  • cert_file (optional) -> the client certificate to use to access the instance via TLS (file path or raw)

  • cert_key_file (optional) -> the client key to use to access the instance via TLS (file path or raw)

  • cert_ca_file (optional) -> the client CA certificate to use to access the instance via TLS (file path or raw)

ScyllaDB is Cassandra-compatible and uses the native CQL protocol (via gocql / Scylla fork). Tables require a primary key; if none is provided on write, Sling will pick a suitable column (preferring columns named id). Prefer setting primary_key explicitly in replications.

When Sling auto-creates a keyspace, it uses NetworkTopologyStrategy with replication_factor: 1 (fine for single-node dev). For production, create keyspaces yourself with the correct per-DC replication factors.

Using sling conns

Here are examples of setting a connection named SCYLLADB. We must provide the type=scylladb property:

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

Examples

Notes

  • No SQL views β€” Scylla supports materialized views with strict rules, not regular CREATE VIEW. Prefer tables as sources.

  • CQL is not SQL β€” arbitrary SQL (joins, aliases, subqueries) is not supported as a stream. Use table names or simple CQL.

  • Merge strategies β€” the default merge strategy is insert (CQL INSERT upserts by primary key). SQL-style update/delete merge strategies are not supported.

  • Keyspaces β€” create production keyspaces yourself with the correct NetworkTopologyStrategy RF per DC.

If you are facing issues connecting, please reach out to us at support@slingdata.io, on discord or open a Github Issue here.

Last updated

Was this helpful?