Skip to content

WowLabz/dynamodb-playbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamoDB Developer Playbook

Production-minded guidance for Amazon DynamoDB: core concepts, repeatable patterns, two end-to-end examples (E-commerce & Social/Activity Feed), runnable HTTP queries, sample data (CSV/JSONL), Mermaid diagrams, and production checklists.

Live site: https://wowlabz.github.io/dynamodb-playbook/


What’s inside

  • Concepts — PK/SK modeling, item collections, LSI vs GSI, conditional/idempotent writes, transactions vs conditionals, migrations, security, error taxonomy.
  • Examples
    • E-commerce: Orders, Lines, Payments, Shipments, Inventory (GSI1 OrdersByUser; GSI2 OrdersByStatus; conditional inventory).
    • Feed: Posts, Likes, Comments, Tags, Followers, Notifications (GSI1 PostsByAuthor; GSI2 PostsByTag; GSI3 FeedByUser + fan-out).
  • Samples — Clean CSVs + JSONL seeds to make the patterns concrete.
  • Queries — SigV4-ready .http payloads for Get/Query/Put/Update with conditions and pagination.
  • Diagrams — Access-pattern matrices, key-design cheat sheets, and shared cross-cutting visuals.
  • Checklists — Design Review, Security/IAM, Observability/Ops, Cost Alarms, DR/Backup, Migration & Evolution.

Quick start

  1. Open the sitehttps://wowlabz.github.io/dynamodb-playbook/
  2. Skim Concepts → understand keys, indexes, conditional writes, streams, and migrations.
  3. Pick an example → browse its Samples, Access Patterns, Diagrams, and Queries.
  4. Run the queries → copy from docs/assets/samples/*/queries.http into your REST client (SigV4) or adapt to AWS CLI/SDK.
  5. Before shipping → walk through Production Checklists.

Repo structure (high level)

docs/
  index.md                    # Home
  concepts.md                 # Core concepts (with shared diagrams)
  downloads.md                # Raw Assets & Downloads
  ecom/
    index.md                  # Overview
    samples.md                # Inline tables for CSVs (links to raw)
    access-patterns.md        # Patterns table + notes
    diagrams.md               # Renders A1–A7
    queries.md                # How to run queries.http
  feed/
    index.md
    samples.md
    access-patterns.md
    diagrams.md
    queries.md
  assets/
    samples/
      ecom/ (...csv, seed.jsonl, queries.http, helpers.{py,ts})
      feed/ (...csv, seed.jsonl, queries.http, helpers.{py,ts})
    diagrams/
      ecom/ A1_access-pattern-matrix.mmd, A2_key-design-cheatsheet.mmd, ...
      feed/ B1_..., B2_..., ...
      shared/ C1_partition-bookshelf.png, C2_lsi-vs-gsi.mmd, ... C7_security-scope.mmd
    checklists/
      design-review.md, security-iam.md, observability-ops.md, ...
  styles/, overrides/, js/     # MkDocs Material branding & mermaid init
mkdocs.yml                      # Site configuration

Work locally (MkDocs Material)

# 1) Install
pip install mkdocs mkdocs-material pymdown-extensions

# 2) Serve locally
mkdocs serve
# http://127.0.0.1:8000

# 3) Build static site (optional)
mkdocs build

Diagrams use Mermaid via MkDocs Material; no extra build step needed.
If you prefer PNGs for diagrams, export from the .mmd sources under docs/assets/diagrams/*.


Using the samples & queries

  • CSV/JSONL: load into your scripts/tests or use as mental models for item shapes and key design.
  • queries.http: run with a client that supports AWS SigV4 (or translate to AWS CLI/SDK).
  • Helpers: helpers.py / helpers.ts include small key/shard helpers you can reuse.

Contributing

  1. Fork and create a feature branch.
  2. Keep access patterns and diagrams in sync with sample CSVs.
  3. Prefer Mermaid for diagrams; place sources under docs/assets/diagrams/....
  4. Run mkdocs serve and preview before opening a PR.

License

Copyright © Wow Labz.
Docs and examples are provided for educational and internal enablement purposes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published