NO

nosql-expert

Mental models for high-scale NoSQL database design, emphasizing query-first modeling and performance tuning.

Install

mkdir -p .claude/skills/nosql-expert && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1933" && unzip -o skill.zip -d .claude/skills/nosql-expert && rm skill.zip

Installs to .claude/skills/nosql-expert

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Expert guidance for distributed NoSQL databases (Cassandra, DynamoDB). Focuses on mental models, query-first modeling, single-table design, and avoiding hot partitions in high-scale systems.
190 charsno explicit “when” trigger
Advanced

Key capabilities

  • Map access patterns to data models
  • Design partition keys for distribution
  • Apply single-table design principles
  • Calculate pre-computed read requirements
  • Identify potential hot partitions

How it works

Transforms business requirements into query-optimized wide-column/key-value storage layouts based on access frequency.

Inputs & outputs

You give it
Target access patterns and data entities
You get back
NoSQL schema design and partition strategy

When to use nosql-expert

  • Designing DynamoDB tables for specific access patterns
  • Optimizing Cassandra schema for high-throughput reads
  • Troubleshooting database hot partitions

About this skill

NoSQL Expert Patterns (Cassandra & DynamoDB)

Overview

This skill provides professional mental models and design patterns for distributed wide-column and key-value stores (specifically Apache Cassandra and Amazon DynamoDB).

Unlike SQL (where you model data entities), or document stores (like MongoDB), these distributed systems require you to model your queries first.

When to Use

  • Designing for Scale: Moving beyond simple single-node databases to distributed clusters.
  • Technology Selection: Evaluating or using Cassandra, ScyllaDB, or DynamoDB.
  • Performance Tuning: Troubleshooting "hot partitions" or high latency in existing NoSQL systems.
  • Microservices: Implementing "database-per-service" patterns where highly optimized reads are required.

The Mental Shift: SQL vs. Distributed NoSQL

FeatureSQL (Relational)Distributed NoSQL (Cassandra/DynamoDB)
Data modelingModel Entities + RelationshipsModel Queries (Access Patterns)
JoinsCPU-intensive, at read timePre-computed (Denormalized) at write time
Storage costExpensive (minimize duplication)Cheap (duplicate data for read speed)
ConsistencyACID (Strong)BASE (Eventual) / Tunable
ScalabilityVertical (Bigger machine)Horizontal (More nodes/shards)

The Golden Rule: In SQL, you design the data model to answer any query. In NoSQL, you design the data model to answer specific queries efficiently.

Core Design Patterns

1. Query-First Modeling (Access Patterns)

You typically cannot "add a query later" without migration or creating a new table/index.

Process:

  1. List all Entities (User, Order, Product).
  2. List all Access Patterns ("Get User by Email", "Get Orders by User sorted by Date").
  3. Design Table(s) specifically to serve those patterns with a single lookup.

2. The Partition Key is King

Data is distributed across physical nodes based on the Partition Key (PK).

  • Goal: Even distribution of data and traffic.
  • Anti-Pattern: Using a low-cardinality PK (e.g., status="active" or gender="m") creates Hot Partitions, limiting throughput to a single node's capacity.
  • Best Practice: Use high-cardinality keys (User IDs, Device IDs, Composite Keys).

3. Clustering / Sort Keys

Within a partition, data is sorted on disk by the Clustering Key (Cassandra) or Sort Key (DynamoDB).

  • This allows for efficient Range Queries (e.g., WHERE user_id=X AND date > Y).
  • It effectively pre-sorts your data for specific retrieval requirements.

4. Single-Table Design (Adjacency Lists)

Primary use: DynamoDB (but concepts apply elsewhere)

Storing multiple entity types in one table to enable pre-joined reads.

PK (Partition)SK (Sort)Data Fields...
USER#123PROFILE{ name: "Ian", email: "..." }
USER#123ORDER#998{ total: 50.00, status: "shipped" }
USER#123ORDER#999{ total: 12.00, status: "pending" }
  • Query: PK="USER#123"
  • Result: Fetches User Profile AND all Orders in one network request.

5. Denormalization & Duplication

Don't be afraid to store the same data in multiple tables to serve different query patterns.

  • Table A: users_by_id (PK: uuid)
  • Table B: users_by_email (PK: email)

Trade-off: You must manage data consistency across tables (often using eventual consistency or batch writes).

Specific Guidance

Apache Cassandra / ScyllaDB

  • Primary Key Structure: ((Partition Key), Clustering Columns)
  • No Joins, No Aggregates: Do not try to JOIN or GROUP BY. Pre-calculate aggregates in a separate counter table.
  • Avoid ALLOW FILTERING: If you see this in production, your data model is wrong. It implies a full cluster scan.
  • Writes are Cheap: Inserts and Updates are just appends to the LSM tree. Don't worry about write volume as much as read efficiency.
  • Tombstones: Deletes are expensive markers. Avoid high-velocity delete patterns (like queues) in standard tables.

AWS DynamoDB

  • GSI (Global Secondary Index): Use GSIs to create alternative views of your data (e.g., "Search Orders by Date" instead of by User).
    • Note: GSIs are eventually consistent.
  • LSI (Local Secondary Index): Sorts data differently within the same partition. Must be created at table creation time.
  • WCU / RCU: Understand capacity modes. Single-table design helps optimize consumed capacity units.
  • TTL: Use Time-To-Live attributes to automatically expire old data (free delete) without creating tombstones.

Expert Checklist

Before finalizing your NoSQL schema:

  • Access Pattern Coverage: Does every query pattern map to a specific table or index?
  • Cardinality Check: Does the Partition Key have enough unique values to spread traffic evenly?
  • Split Partition Risk: For any single partition (e.g., a single user's orders), will it grow indefinitely? (If > 10GB, you need to "shard" the partition, e.g., USER#123#2024-01).
  • Consistency Requirement: Can the application tolerate eventual consistency for this read pattern?

Common Anti-Patterns

Scatter-Gather: Querying all partitions to find one item (Scan). ❌ Hot Keys: Putting all "Monday" data into one partition. ❌ Relational Modeling: Creating Author and Book tables and trying to join them in code. (Instead, embed Book summaries in Author, or duplicate Author info in Books).

When not to use it

  • Relational data with complex cross-table joins
  • Small-scale apps with simple read patterns

Limitations

  • Difficult to change query patterns later
  • Requires high-discipline data modeling

How it compares

Forces a mental shift from entity-relationship modeling to read-path-optimized denormalization.

Compared to similar skills

nosql-expert side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
nosql-expert (this skill)26moNo flagsAdvanced
postgresql-table-design304moNo flagsIntermediate
agentdb-advanced-features79moReviewAdvanced
event-store-design52moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

software-architecture

davila7

Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.

333868

planning-with-files

davila7

Implements Manus-style file-based planning for complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when starting complex multi-step tasks, research projects, or any task requiring >5 tool calls.

233106

telegram-bot-builder

davila7

Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.

106130

scroll-experience

davila7

Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product pages, and award-winning web experiences. Makes websites feel like experiences, not just pages. Use when: scroll animation, parallax, scroll storytelling, interactive story, cinematic website.

101142

humanizer

davila7

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases. Credits: Original skill by @blader - https://github.com/blader/humanizer

90175

game-development

davila7

Game development orchestrator. Routes to platform-specific skills based on project needs.

70195

Search skills

Search the agent skills registry