|
1 | 1 | # DynamoDB Developer Playbook |
2 | 2 |
|
3 | | -This repository contains a `docs/` folder ready for **GitHub Pages**. |
| 3 | +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**. |
4 | 4 |
|
5 | | -## Publish on GitHub Pages |
6 | | -1. Push `docs/` to your repo’s default branch (e.g., `main`). |
7 | | -2. In **Settings → Pages**: |
8 | | - - **Source:** Deploy from a branch |
9 | | - - **Branch:** `main` and **Folder:** `/docs` |
10 | | -3. Open your Pages URL (e.g., `https://<org>.github.io/<repo>/`). |
| 5 | +**Live site:** https://wowlabz.github.io/dynamodb-playbook/ |
11 | 6 |
|
12 | | -Mermaid diagrams are embedded directly and render in GitHub Pages. |
| 7 | +--- |
| 8 | + |
| 9 | +## What’s inside |
| 10 | + |
| 11 | +- **Concepts** — PK/SK modeling, item collections, LSI vs GSI, conditional/idempotent writes, transactions vs conditionals, migrations, security, error taxonomy. |
| 12 | +- **Examples** |
| 13 | + - **E-commerce:** Orders, Lines, Payments, Shipments, Inventory (GSI1 OrdersByUser; GSI2 OrdersByStatus; conditional inventory). |
| 14 | + - **Feed:** Posts, Likes, Comments, Tags, Followers, Notifications (GSI1 PostsByAuthor; GSI2 PostsByTag; GSI3 FeedByUser + fan-out). |
| 15 | +- **Samples** — Clean CSVs + JSONL seeds to make the patterns concrete. |
| 16 | +- **Queries** — SigV4-ready `.http` payloads for Get/Query/Put/Update with conditions and pagination. |
| 17 | +- **Diagrams** — Access-pattern matrices, key-design cheat sheets, and shared cross-cutting visuals. |
| 18 | +- **Checklists** — Design Review, Security/IAM, Observability/Ops, Cost Alarms, DR/Backup, Migration & Evolution. |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Quick start |
| 23 | + |
| 24 | +1. **Open the site** → https://wowlabz.github.io/dynamodb-playbook/ |
| 25 | +2. **Skim Concepts** → understand keys, indexes, conditional writes, streams, and migrations. |
| 26 | +3. **Pick an example** → browse its **Samples**, **Access Patterns**, **Diagrams**, and **Queries**. |
| 27 | +4. **Run the queries** → copy from `docs/assets/samples/*/queries.http` into your REST client (SigV4) or adapt to AWS CLI/SDK. |
| 28 | +5. **Before shipping** → walk through **Production Checklists**. |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## Repo structure (high level) |
| 33 | + |
| 34 | +``` |
| 35 | +docs/ |
| 36 | + index.md # Home |
| 37 | + concepts.md # Core concepts (with shared diagrams) |
| 38 | + downloads.md # Raw Assets & Downloads |
| 39 | + ecom/ |
| 40 | + index.md # Overview |
| 41 | + samples.md # Inline tables for CSVs (links to raw) |
| 42 | + access-patterns.md # Patterns table + notes |
| 43 | + diagrams.md # Renders A1–A7 |
| 44 | + queries.md # How to run queries.http |
| 45 | + feed/ |
| 46 | + index.md |
| 47 | + samples.md |
| 48 | + access-patterns.md |
| 49 | + diagrams.md |
| 50 | + queries.md |
| 51 | + assets/ |
| 52 | + samples/ |
| 53 | + ecom/ (...csv, seed.jsonl, queries.http, helpers.{py,ts}) |
| 54 | + feed/ (...csv, seed.jsonl, queries.http, helpers.{py,ts}) |
| 55 | + diagrams/ |
| 56 | + ecom/ A1_access-pattern-matrix.mmd, A2_key-design-cheatsheet.mmd, ... |
| 57 | + feed/ B1_..., B2_..., ... |
| 58 | + shared/ C1_partition-bookshelf.png, C2_lsi-vs-gsi.mmd, ... C7_security-scope.mmd |
| 59 | + checklists/ |
| 60 | + design-review.md, security-iam.md, observability-ops.md, ... |
| 61 | + styles/, overrides/, js/ # MkDocs Material branding & mermaid init |
| 62 | +mkdocs.yml # Site configuration |
| 63 | +``` |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## Work locally (MkDocs Material) |
| 68 | + |
| 69 | +```bash |
| 70 | +# 1) Install |
| 71 | +pip install mkdocs mkdocs-material pymdown-extensions |
| 72 | + |
| 73 | +# 2) Serve locally |
| 74 | +mkdocs serve |
| 75 | +# http://127.0.0.1:8000 |
| 76 | + |
| 77 | +# 3) Build static site (optional) |
| 78 | +mkdocs build |
| 79 | +``` |
| 80 | + |
| 81 | +> Diagrams use Mermaid via MkDocs Material; no extra build step needed. |
| 82 | +> If you prefer PNGs for diagrams, export from the `.mmd` sources under `docs/assets/diagrams/*`. |
| 83 | +
|
| 84 | +--- |
| 85 | + |
| 86 | +## Using the samples & queries |
| 87 | + |
| 88 | +- **CSV/JSONL**: load into your scripts/tests or use as mental models for item shapes and key design. |
| 89 | +- **`queries.http`**: run with a client that supports **AWS SigV4** (or translate to AWS CLI/SDK). |
| 90 | +- **Helpers**: `helpers.py` / `helpers.ts` include small key/shard helpers you can reuse. |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## Contributing |
| 95 | + |
| 96 | +1. Fork and create a feature branch. |
| 97 | +2. Keep **access patterns** and **diagrams** in sync with sample CSVs. |
| 98 | +3. Prefer **Mermaid** for diagrams; place sources under `docs/assets/diagrams/...`. |
| 99 | +4. Run `mkdocs serve` and preview before opening a PR. |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## License |
| 104 | + |
| 105 | +Copyright © Wow Labz. |
| 106 | +Docs and examples are provided for educational and internal enablement purposes. |
0 commit comments