Skip to content

📝 docs(infra): add multi-region architecture ADRs (126-132)#393

Draft
sodre wants to merge 3 commits into
mainfrom
docs/adr-multi-region
Draft

📝 docs(infra): add multi-region architecture ADRs (126-132)#393
sodre wants to merge 3 commits into
mainfrom
docs/adr-multi-region

Conversation

@sodre

@sodre sodre commented Feb 15, 2026

Copy link
Copy Markdown
Member

Summary

  • Add seven proposed ADRs documenting the multi-region rate limiting architecture
  • ADR-126: Independent regional tables (reject Global Tables)
  • ADR-127: S3-based cross-region sync exchange
  • ADR-128: Quota enforcement via entity config overrides
  • ADR-129: Trigger-based sync writes (exhaustion + drift)
  • ADR-130: Per-region sync Lambda (symmetric, no coordinator)
  • ADR-131: TTL on sync-written config records (extends ADR-119)
  • ADR-132: Sync config ownership via TTL presence

Test plan

  • Review each ADR for technical accuracy and consistency
  • Verify ADR numbering does not conflict with existing ADRs
  • Confirm all ADRs have "Proposed" status

🤖 Generated with Claude Code

Seven proposed ADRs documenting the multi-region rate limiting architecture:
- ADR-123: Independent regional tables (reject Global Tables)
- ADR-124: S3-based cross-region sync exchange
- ADR-125: Quota enforcement via entity config overrides
- ADR-126: Trigger-based sync writes (exhaustion + drift)
- ADR-127: Per-region sync Lambda (symmetric, no coordinator)
- ADR-128: TTL on sync-written config records (extends ADR-119)
- ADR-129: Sync config ownership via TTL presence

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sodre sodre added this to the v0.10.0 milestone Feb 15, 2026
@sodre sodre added the area/limiter Core rate limiting logic label Feb 15, 2026
@codecov

codecov Bot commented Feb 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 29.14%. Comparing base (0858e59) to head (06653b2).
⚠️ Report is 166 commits behind head on main.
✅ All tests successful. No failed tests found.

❗ There is a different number of reports uploaded between BASE (0858e59) and HEAD (06653b2). Click for more details.

HEAD has 3 uploads less than BASE
Flag BASE (0858e59) HEAD (06653b2)
unit 1 0
e2e 1 0
integration 1 0
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #393       +/-   ##
===========================================
- Coverage   91.87%   29.14%   -62.74%     
===========================================
  Files          33       37        +4     
  Lines        7435     7854      +419     
===========================================
- Hits         6831     2289     -4542     
- Misses        604     5565     +4961     
Flag Coverage Δ
doctest 29.14% <ø> (+1.15%) ⬆️
e2e ?
integration ?
unit ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@sodre sodre modified the milestones: v0.10.0, v2.0.0 Feb 15, 2026
ADR-123 was assigned to local-secondary-indexes on main after this
branch was created, so the multi-region series collided starting at
123. Shift the whole series up by 3 (123→126 … 129→132) to the next
free block, updating titles and all internal cross-references.
References to existing ADRs (105, 114, 117, 118, 119, 122) are
unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sodre sodre changed the title 📝 docs(infra): add multi-region architecture ADRs (123-129) 📝 docs(infra): add multi-region architecture ADRs (126-132) Jun 12, 2026
…→ 124)

This branch forked from main after both ADR-121 files existed, so it
carried the same duplicate-121 collision. Apply the identical fix used
on main (#422): rename policy-rename-clarity 121 → 124 so the branch is
self-consistent and merges cleanly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
sodre added a commit that referenced this pull request Jun 12, 2026
…refs (#422)

## Summary

This PR collects four commits of ADR consistency cleanup on `main`:

1. **Resolve the duplicate ADR-121** — two Accepted ADRs both claimed
number 121. Native-sync keeps 121 (earlier file, referenced externally
by CLAUDE.md); the IAM policy-rename ADR is renumbered `121 → 124` (next
free number after `123-local-secondary-indexes`). Structural collision
fix only — no decision content changed, consistent with the ADR
immutability rule.
2. **Normalize ADR-121 (native-sync) status header** — it used a `##
Status` heading with the value on a separate line; normalized to the
`**Status:**` / `**Date:**` inline format mandated by ADR-000 (Date
`2026-02-02`, from the file's creation commit).
3. **Add ADRs 114-124 to the mkdocs navigation** — the nav previously
stopped at ADR-113, leaving 114-124 unreachable from the docs site.
Added thematic groups covering 114-124 and reflecting the corrected
numbering.
4. **Resolve cross-ADR consistency issues** surfaced by `/adr
consistency`:
- **ADR-107**: annotate its partial supersession by ADR-117. Two
Accepted ADRs asserted opposite IAM defaults (roles-by-default vs
policies-by-default); flag it in the status line and add a Decision note
pointing to ADR-117 (current default) and ADR-124 (policy rename) so the
reversed default is unambiguous.
- **ADR-100**: this Proposed index still presented superseded
sub-decisions (102→118, 103→122) as authoritative and used the
pre-composite `#LIMIT#` schema. Mark the superseded rows and show the
current composite `#CONFIG` keys.
- **ADR-013**: accept it. It was Proposed yet already superseded ADR-012
— an invalid state. Its decision is complete and already operationalized
as `.claude/rules/docs-parity.md`, so finalize the status.

This is the **main-branch half of a coordinated cleanup**. The other
halves renumber ADRs on open PRs so the whole sequence is
collision-free:

- **#304**: `121 → 125`
- **#393**: `123-129 → 126-132` (plus the same inherited `121 → 124`
fix)

Together these yield a collision-free ADR sequence **121-132**.

## Test plan

- [ ] `ls docs/adr/12*.md` shows no duplicate ADR numbers
- [ ] `grep -rn "121-policy-rename" docs/` returns no stale references
- [ ] ADR-124 header reads `# ADR-124: Rename IAM Policies for Clarity`
- [ ] ADR-121 header uses the `**Status:**` / `**Date:**` inline format
- [ ] `mkdocs build` reaches ADRs 114-124 from the nav
- [ ] ADR-107 status line notes the partial supersession by ADR-117
- [ ] ADR-100 marks the 102→118 / 103→122 superseded rows and shows
`#CONFIG` keys
- [ ] ADR-013 status reads Accepted

🤖 Generated with [Claude Code](https://claude.ai/code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/limiter Core rate limiting logic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant