Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Design Cassandra tables, write efficient queries, and avoid distributed database pitfalls.
Design Cassandra tables, write efficient queries, and avoid distributed database pitfalls.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Design tables around queries, not entities—denormalization is mandatory, not optional One table per query pattern—Cassandra has no JOINs; duplicate data across tables Partition key determines data distribution—all rows with same partition key on same node Wide partitions kill performance—keep under 100MB; add time bucket to partition key if growing
PRIMARY KEY (a, b, c): a is partition key, b and c are clustering columns PRIMARY KEY ((a, b), c): (a, b) together is partition key—compound partition key Clustering columns define sort order within partition—query must respect this order Can't query by clustering column without partition key—unlike SQL indexes
WHERE must include full partition key—partial partition key fails unless ALLOW FILTERING ALLOW FILTERING scans all nodes—never use in production; redesign table instead Range queries only on last clustering column used—WHERE a = ? AND b > ? works, WHERE a = ? AND c > ? doesn't IN on partition key hits multiple nodes—expensive; prefer single partition queries
QUORUM for most operations—majority of replicas; balances consistency and availability LOCAL_QUORUM for multi-datacenter—avoids cross-DC latency ONE for pure availability—may read stale data; fine for caches, bad for critical reads Write + read consistency must overlap for strong consistency—QUORUM + QUORUM safe
DELETE creates a tombstone, not actual deletion—tombstones persist until compaction Mass deletes destroy read performance—thousands of tombstones scanned per query TTL also creates tombstones—don't use short TTLs with high write volume Check with nodetool cfstats -H table—Tombstone columns show problem
UNLOGGED BATCH is not faster—use only for atomic writes to same partition LOGGED BATCH for multi-partition atomicity—adds coordination overhead Don't batch unrelated writes—hurts coordinator; send individual async writes Batch size limit ~50KB—larger batches fail or timeout
Secondary indexes on high-cardinality columns—scatter-gather query, slow Secondary indexes on frequently updated columns—creates tombstones SELECT *—always list columns; schema changes break queries UUID as partition key without time component—random distribution, hot spots during bulk loads
IF NOT EXISTS / IF column = ?—uses Paxos, 4x slower than normal write Serial consistency for LWTs—SERIAL or LOCAL_SERIAL Don't use for counters or high-frequency updates—contention kills throughput Returns [applied] boolean—must check if operation succeeded
Sets/Lists/Maps stored with row—can't exceed 64KB, no pagination List prepend is anti-pattern—creates tombstones; use append or Set Counters require dedicated table—can't mix with regular columns Counter increment is not idempotent—retry may double-count
SizeTieredCompactionStrategy (default)—good for write-heavy, uses more disk space LeveledCompactionStrategy—better read latency, higher write amplification TimeWindowCompactionStrategy—for time-series with TTL; reduces tombstone overhead Wrong strategy for workload = degraded performance over time
nodetool repair regularly—inconsistencies accumulate without repair nodetool status shows cluster health—UN (Up Normal) is good, DN is down Schema changes propagate eventually—wait for nodetool describecluster to show agreement Rolling restarts: one node at a time, wait for UN status before next
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.