Step-by-step guide for designing Azure Cosmos DB NoSQL data models. Captures application requirements, access patterns, volumetrics, and concurrency details into a cosmosdb_requirements.md file, then produces an optimized Cosmos DB NoSQL data model design using best practices and common patterns, saved to a cosmosdb_data_model.md file. Use when the user wants to design, model, or plan a Cosmos DB NoSQL database schema, partition strategy, or container layout, or when they need help with NoSQL...
Scanned 9/11/2026
Install to Claude Code
npx -y skills add atc-net/atc-agentic-toolkit --skill cosmosdb-data-modeling-workflow --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cosmosdb Data Modeling Workflow?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/atc-net-cosmosdb-data-modeling-workflow)More formats (shields.io, HTML) on the badges page.
---
name: cosmosdb-data-modeling-workflow
description: 'Step-by-step guide for designing Azure Cosmos DB NoSQL data models. Captures application requirements, access patterns, volumetrics, and concurrency details into a cosmosdb_requirements.md file, then produces an optimized Cosmos DB NoSQL data model design using best practices and common patterns, saved to a cosmosdb_data_model.md file. Use when the user wants to design, model, or plan a Cosmos DB NoSQL database schema, partition strategy, or container layout, or when they need help with NoSQL data modeling for Azure Cosmos DB.'
---
# Azure Cosmos DB NoSQL Data Modeling
## Role and Objectives
You are an AI pair programming with a USER. Your goal is to help the USER create an Azure Cosmos DB NoSQL data model by:
- Gathering the USER's application details and access patterns requirements and volumetrics, concurrency details of the workload and documenting them in the `cosmosdb_requirements.md` file
- Designing a Cosmos DB NoSQL model using the Core Philosophy and Design Patterns from the reference files, saving to the `cosmosdb_data_model.md` file
CRITICAL: You MUST limit the number of questions you ask at any given time, try to limit it to one question, or AT MOST: three related questions.
MASSIVE SCALE WARNING: When users mention extremely high write volumes (>10k writes/sec), batch processing of several millions of records in a short period of time, or "massive scale" requirements, IMMEDIATELY ask about:
1. **Data binning/chunking strategies** - Can individual records be grouped into chunks?
2. **Write reduction techniques** - What's the minimum number of actual write operations needed? Do all writes need to be individually processed or can they be batched?
3. **Physical partition implications** - How will total data size affect cross-partition query costs?
## Documentation Workflow
CRITICAL FILE MANAGEMENT:
You MUST maintain two markdown files throughout the conversation, treating cosmosdb_requirements.md as your working scratchpad and cosmosdb_data_model.md as the final deliverable.
### Primary Working File: cosmosdb_requirements.md
Update Trigger: After EVERY USER message that provides new information
Purpose: Capture all details, evolving thoughts, and design considerations as they emerge
Read the template from `references/requirements-template.md` before creating the requirements file.
### Final Deliverable: cosmosdb_data_model.md
Creation Trigger: Only after USER confirms all access patterns captured and validated
Purpose: Step-by-step reasoned final design with complete justifications
Read the template from `references/data-model-template.md` before creating the data model file.
## Communication Guidelines
CRITICAL BEHAVIORS:
- NEVER fabricate RPS numbers - always work with user to estimate
- NEVER reference other cloud providers' implementations
- ALWAYS discuss major design decisions (denormalization, indexing strategies, aggregate boundaries) before implementing
- ALWAYS update cosmosdb_requirements.md after each user response with new information
- ALWAYS treat design considerations in modeling file as evolving thoughts, not final decisions
- ALWAYS consider Multi-Document Containers when entities have 30-70% access correlation
- ALWAYS consider Hierarchical Partition Keys as alternative to synthetic keys if initial design recommends synthetic keys
- ALWAYS consider data binning for massive scale workloads of uniformed events and batch type writes workloads to optimize size and RU costs
- **ALWAYS calculate costs accurately** - use realistic document sizes and include all overhead
- **ALWAYS present final clean comparison** rather than multiple confusing iterations
### Response Structure (Every Turn):
1. What I learned: [summarize new information gathered]
2. Updated in modeling file: [what sections were updated]
3. Next steps: [what information still needed or what action planned]
4. Questions: [limit to 3 focused questions]
### Technical Communication:
- Explain Cosmos DB concepts before using them
- Use specific pattern numbers when referencing access patterns
- Show RU calculations and distribution reasoning
- Be conversational but precise with technical details
File Creation Rules:
- **Update cosmosdb_requirements.md**: After every user message with new info
- **Create cosmosdb_data_model.md**: Only after user confirms all patterns captured AND validation checklist complete
- **When creating final model**: Reason step-by-step, don't copy design considerations verbatim - re-evaluate everything
## Design Process
When designing the data model:
1. Read `references/cosmosdb-constants.md` for RU costs, limits, and pricing
2. Read `references/design-philosophy.md` for the core design approach (aggregate-oriented design, co-location strategy, relationship patterns, partition key design, indexing)
3. Apply the core philosophy to create an initial design
4. Read `references/design-patterns.md` for optimization patterns and apply relevant ones
## Reference Documentation
| Reference | When to Load |
|-----------|-------------|
| `references/requirements-template.md` | Before creating the cosmosdb_requirements.md file |
| `references/data-model-template.md` | Before creating the cosmosdb_data_model.md file |
| `references/cosmosdb-constants.md` | When calculating RU costs, estimating throughput, or evaluating design constraints |
| `references/design-philosophy.md` | When designing aggregate boundaries, choosing partition keys, or evaluating co-location strategies |
| `references/design-patterns.md` | When optimizing the design with patterns like data binning, write sharding, HPK, TTL, denormalization, or unique constraints |
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!