juancarestre/dynamodb-skills · Archived

dynamodb-single-table

Orchestrator for the DynamoDB single-table design pipeline.

First seen Feb 25, 2026

Installation

$ npx skills add juancarestre/dynamodb-skills --skill dynamodb-single-table

Summary

  • Orchestrator for the DynamoDB single-table design pipeline.
  • Use when the user wants to design a DynamoDB table end-to-end or is unsure which step to start with.
  • Routes to the appropriate specialized skill: dynamodb-access-patterns, dynamodb-table-design, or dynamodb-query-interfaces.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from juancarestre/dynamodb-skills.

npx skills add juancarestre/dynamodb-skills

Browse all from juancarestre/dynamodb-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch master
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,497 B
  • docs SUMMARY.md 313 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 35 installs

SKILL.md

DynamoDB Single-Table Design Pipeline

This skill orchestrates a 3-step pipeline for designing and implementing a DynamoDB single-table design. Use it when the user wants the full workflow or needs guidance on which step to take next.

Pipeline Overview

  Step 1                    Step 2                    Step 3
  ┌──────────────────┐      ┌──────────────────┐      ┌──────────────────┐
  │ Access Patterns   │ ──>  │ Table Design      │ ──>  │ Query Interfaces  │
  │                   │      │                   │      │                   │
  │ Elicit entities   │      │ Design PK/SK/GSI  │      │ Generate method   │
  │ & access patterns │      │ Map AP -> Query   │      │ signatures & types│
  │ Output: .md file  │      │ Output: .md file  │      │ Output: .md file  │
  └──────────────────┘      └──────────────────┘      └──────────────────┘
  Skill:                    Skill:                    Skill:
  dynamodb-access-patterns  dynamodb-table-design     dynamodb-query-interfaces

Step 0: Detect Pipeline State

Before routing, check if the user's project already has pipeline artifacts. Search for files matching these patterns:

  • /access-patterns.md or /access_patterns.md
  • /table-design.md or /table_design.md
  • /query-interfaces.md or /query_interfaces.md

Also check common locations:

  • docs/dynamodb/
  • docs/
  • Project root

Based on what exists:

Files Found State Action
None Fresh start Route to dynamodb-access-patterns
Access patterns only Step 1 complete Route to dynamodb-table-design with the file path
Access patterns + table design Steps 1-2 complete Route to dynamodb-query-interfaces with the file path
All three files Pipeline complete Ask if they want to add entities, modify, or review
Table design only (no access patterns) Partial/legacy Warn that access patterns should be documented; offer to backfill or continue to Step 3

Tell the user what you found:

I found existing DynamoDB design artifacts in your project:

  [x] Access Patterns: docs/dynamodb/access-patterns.md
  [x] Table Design:    docs/dynamodb/table-design.md
  [ ] Query Interfaces: (not found)

You're ready for Step 3. Should I generate the query interfaces from
your table design?

How to Route

User wants to... Route to
Start designing from scratch dynamodb-access-patterns
Define entities and how they'll be queried dynamodb-access-patterns
Has access patterns, needs key design dynamodb-table-design
Has a table design, needs code interfaces dynamodb-query-interfaces
Add a new entity to an existing table Start with dynamodb-access-patterns for the new entity, then continue the pipeline
Understand single-table design concepts Answer directly using the concepts below

Core Concepts (Quick Reference)

What is Single-Table Design?

All entity types live in ONE DynamoDB table. You pre-join related data into item collections (items sharing a partition key) so they can be fetched in a single Query call. This eliminates the need for joins and reduces network round-trips.

When to Use Single-Table Design

  • You need sub-30ms response times at any scale
  • You have well-defined access patterns that won't change frequently
  • You need to fetch multiple entity types in a single request
  • You're building OLTP workloads (not analytics)

When NOT to Use Single-Table Design

  • Your access patterns are still evolving rapidly (early-stage startup)
  • You use GraphQL with per-type resolvers (the resolver model negates single-query benefits)
  • You need flexible ad-hoc queries (consider a relational database instead)

Key Principles

  1. Access patterns first. Never design keys without knowing your queries.
  2. Pre-join into item collections. Related data shares a partition key.
  3. One table, generic key names. Use pk/sk (not userId/orderId).
  4. GSIs for alternate access patterns. Reuse before creating new ones (max 20).
  5. Composite sort keys for multi-field sorting. Encode hierarchy in the SK.
  6. No Scans. Every query must use a partition key. If you need Scan, redesign.
  7. Transactions for multi-item writes. Ensure consistency across item collections.

Artifacts Produced

By the end of the pipeline, the user will have 3 files:

File Content Produced by
access-patterns.md Entities, attributes, all read/write/delete patterns dynamodb-access-patterns
table-design.md PK/SK design, GSIs, access pattern -> query mapping dynamodb-table-design
query-interfaces.md Entity types, key builders, repository method signatures dynamodb-query-interfaces

These files serve as the specification for the implementation phase.