Skip to content

docs(sqs): promote split-queue-fifo from proposed to partial (Phase 3.D PR 8)#739

Merged
bootjp merged 1 commit intomainfrom
docs/sqs-split-queue-fifo-partial
May 5, 2026
Merged

docs(sqs): promote split-queue-fifo from proposed to partial (Phase 3.D PR 8)#739
bootjp merged 1 commit intomainfrom
docs/sqs-split-queue-fifo-partial

Conversation

@bootjp
Copy link
Copy Markdown
Owner

@bootjp bootjp commented May 5, 2026

Summary

Phase 3.D PR 8 — the doc-lifecycle bump for the split-queue-FIFO design. Renames 2026_04_26_proposed_sqs_split_queue_fifo.md2026_04_26_partial_sqs_split_queue_fifo.md because every milestone in the rollout plan that produces shippable code has merged on main (#681 schema, #703 keyspace, #704 / #708 / #715 / #721 / #723 routing-layer 4-A through 4-B-3b, #724 / #731 / #732 / #734 data-plane fanout 5a through 5b-3, #735 / #736 reaper 6a/6b, #737 / #738 metrics + Jepsen 7a/7b).

This is the milestone tracked as PR 8 in §11 of the design doc itself.

Why "partial" rather than "implemented"

Per docs/design/README.md:

Value Meaning
proposed No matching code on main, or the doc itself declares itself a proposal.
partial Some components exist but the full scope described in the doc is not yet merged.
implemented Concrete Go code exists on main that matches the design's central subsystem.

The central subsystem (the partitioned-FIFO data plane, reaper, capability gate, metrics, and Jepsen workload) does exist on main, which would suggest implemented. I chose partial because §10 (Open Questions) and §12 (Alternatives Considered) explicitly note follow-on work that extends the same surface — operator-configurable hash, online resharding, cross-partition transactional admin. Each is out-of-scope for this proposal but each would be an extension of the design. partial leaves room for those without forcing them into a separate proposal track. If you'd prefer implemented, I can amend the rename — happy to take direction.

Changes

  • git mv preserves history via 97% similarity-based rename detection — git log --follow continues to trace prior revisions.
  • Status header updated from Proposed to Partial to mirror the filename token.
  • §11 rollout table annotated with shipped status anchored to merge PR numbers, plus a "Status as of 2026-05-04" header paragraph explaining the partial-vs-implemented call.
  • In-tree source-comment cross-references updated from the proposed-stage filename to the partial-stage filename:
    • main_sqs_leadership_refusal.go
    • shard_config.go
    • adapter/sqs_keys.go
    • adapter/sqs_partitioning.go
    • adapter/sqs_catalog.go

These are doc-only comments; no behaviour change.

Self-review (5 lenses, abbreviated)

  1. Data loss — N/A; doc-only and comment-only changes.
  2. Concurrency — N/A.
  3. Performance — N/A.
  4. Data consistency — N/A.
  5. Test coverage — no tests added; doc-and-comment change only.

Test plan

  • go build ./... clean.
  • golangci-lint --config=.golangci.yaml run clean (pre-commit hook auto-ran).
  • No remaining references to the old filename anywhere in the tree (Go / Clojure / Markdown).

Refs

  • docs/design/2026_04_26_partial_sqs_split_queue_fifo.md §11.
  • docs/design/README.md "Filename convention" + "Moving or renaming".

Summary by CodeRabbit

  • Documentation
    • Updated design document references across multiple source files from the proposed version to the partial version.
    • Updated the design document status and rollout plan to reflect the current shipped state.

….D PR 8)

§11 of docs/design/.../sqs_split_queue_fifo.md (the rollout plan)
has shipped through PR 7b: schema (#681), keyspace (#703), routing
layer (#704, #708, #715, #721, #723), data-plane fanout (#724,
#731, #732, #734), reaper (#735, #736), Jepsen workload + metrics
(#737, #738). PR 8 — the doc-lifecycle bump itself — is this PR.

Per docs/design/README.md the lifecycle marker is the filename
token, promoted by `git mv`:

- proposed: no matching code on main, OR doc declares itself a
  proposal.
- partial: some components exist but the full scope is not yet
  merged.
- implemented: concrete Go code matches the design's central
  subsystem.

Choosing "partial" rather than "implemented": every milestone
that produces shippable code in the rollout plan has landed,
but §10 (open questions) and §12 (alternatives considered)
explicitly note follow-on work that would extend the same
surface — operator-configurable hash, online resharding, cross-
partition transactional admin. Each is out of scope for this
proposal but each would be an extension of the design,
warranting "partial" until that follow-on tracks to a separate
proposal or is explicitly closed.

Changes:
- git mv 2026_04_26_proposed_sqs_split_queue_fifo.md →
  2026_04_26_partial_sqs_split_queue_fifo.md (preserves history
  via similarity-based rename detection).
- Update the Status header from Proposed to Partial.
- Annotate §11 rollout table with shipped status anchored to
  merge PR numbers, plus a "Status as of 2026-05-04" header
  paragraph that explains the partial-vs-implemented choice.
- Update in-tree source-comment cross-references from the
  proposed_ filename to the partial_ filename across:
    main_sqs_leadership_refusal.go
    shard_config.go
    adapter/sqs_keys.go
    adapter/sqs_partitioning.go
    adapter/sqs_catalog.go
  These are doc-only comments; no behaviour change.

Self-review (5 lenses, abbreviated since this is doc-only):
1. Data loss — N/A.
2. Concurrency — N/A.
3. Performance — N/A.
4. Data consistency — N/A.
5. Test coverage — no tests added; doc-and-comment change only.

Refs: docs/design/2026_04_26_partial_sqs_split_queue_fifo.md §11.
@bootjp
Copy link
Copy Markdown
Owner Author

bootjp commented May 5, 2026

@claude review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 974836db-b4de-4694-bd24-cb5ecea130ee

📥 Commits

Reviewing files that changed from the base of the PR and between afd2b1c and 1d7c859.

📒 Files selected for processing (6)
  • adapter/sqs_catalog.go
  • adapter/sqs_keys.go
  • adapter/sqs_partitioning.go
  • docs/design/2026_04_26_partial_sqs_split_queue_fifo.md
  • main_sqs_leadership_refusal.go
  • shard_config.go

📝 Walkthrough

Walkthrough

Multiple source files and the HT-FIFO design document are updated to reference a design document status change from "Proposed" to "Partial" as of May 2026, including updated rollout plan tracking.

Changes

Design Document Status & Reference Update

Layer / File(s) Summary
Design Document Status
docs/design/2026_04_26_partial_sqs_split_queue_fifo.md
Document status field updated from "Proposed" to "Partial"; Rollout Plan (Multi-PR) section refreshed with status as of 2026-05-04, PR 8 marked "in flight", earlier PRs marked "merged".
Source Code Reference Updates
adapter/sqs_catalog.go, adapter/sqs_keys.go, adapter/sqs_partitioning.go, main_sqs_leadership_refusal.go, shard_config.go
In-file documentation comments updated to reference 2026_04_26_partial_sqs_split_queue_fifo.md instead of 2026_04_26_proposed_sqs_split_queue_fifo.md.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • bootjp/elastickv#664: The primary PR that introduced the HT-FIFO split-queue design; this PR updates references to reflect its status progression from proposed to partial.

Poem

🐰 A hop through the docs, a status so keen,
From "proposed" to "partial"—a clearer scene,
Breadcrumbs of truth, now freshly laid,
The design's refined, the rollout's displayed! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: promoting the split-queue-fifo design from 'proposed' to 'partial' status, with explicit reference to the design phase (Phase 3.D PR 8).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/sqs-split-queue-fifo-partial

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@claude
Copy link
Copy Markdown

claude Bot commented May 5, 2026

Claude finished @bootjp's task in 2m 30s —— View job


Code Review — PR #739

  • Read design doc and verify content accuracy
  • Check all Go source comment updates for consistency
  • Verify no stale references to old filename remain
  • Assess "partial" vs "implemented" classification
  • Post review findings

Summary

Clean doc-lifecycle PR. The mechanics are correct — git mv was used, all five Go source cross-references updated, and a grep over the tree confirms zero remaining references to the old proposed_sqs_split_queue_fifo filename. The §11 rollout table is well-annotated with shipped PR anchors. Two items worth discussing:


Issues

1. Stale cross-reference inside the doc body (pre-existing, but surfaced by this PR)

docs/design/2026_04_26_partial_sqs_split_queue_fifo.md, line 15:

The Phase 1+2 of `docs/design/2026_04_24_partial_sqs_compatible_adapter.md`

The actual file on disk is 2026_04_24_proposed_sqs_compatible_adapter.md (not partial). This reference predates this PR, but since the doc is being touched anyway, this is the natural moment to fix it.

2. Stale rollout-progress comment in adapter/sqs_partitioning.go (lines 12–18)

This PR updates line 10 (filename reference) but leaves lines 12–18 unchanged:

// PR 2 of the §11 rollout introduces the schema fields plus the
// validation surface — including the temporary dormancy gate that
// rejects PartitionCount > 1 at CreateQueue. PR 5 lifts the gate
// atomically with the data-plane fanout so a half-deployed cluster
// can never accept a partitioned queue without the data plane to
// serve it. Until then the field exists in the meta type and the
// router function compiles, but no partitioned queue can land.

"Until then … no partitioned queue can land" is historically inaccurate now that PR 5 (#724 et al.) has shipped. A reader who doesn't know the PR history will be confused — the gate is lifted. Since this PR is already updating this file, consider replacing the rollout-progress narrative with a single factual sentence, e.g.:

// PRs 2–7 of the §11 rollout (see the design doc §11) have shipped.
// PartitionCount > 1 is now accepted and the partition-aware data
// plane is active.

Discussion

"partial" vs "implemented"

The docs/design/README.md definition is:

implemented — Concrete Go code exists on main that matches the design's central subsystem (the functions, types, or files named in the doc).

All of the central subsystems named in the doc have landed: partitionFor, sqsQueueMeta.PartitionCount, the fanout reader/writer, the reaper, the leadership-refusal hook, capability advertisement, metrics, and the Jepsen workload. The §12 alternatives were rejected, not deferred. The §10 open questions are acknowledged trade-offs (document-and-accept for FNV-1a, no cross-partition ordering required), not unimplemented stubs.

By the README definition alone, implemented is the stronger match. That said, the PR description makes a reasonable case for partial as a holding pattern for follow-on work that extends the same surface. Happy to accept whichever direction you choose — it's a documentation judgment call, not a correctness issue. If you do move to implemented later, a trivial git mv rename PR is all it takes.


Verdict

Approve with minor suggestions. The correctness concern is item 1 (broken link to a non-existent filename). Item 2 is a minor cleanup opportunity. Both are small enough to address in a follow-up if you'd rather keep this PR diff-minimal.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the status of the SQS Split-Queue FIFO design from 'Proposed' to 'Partial'. The changes include renaming the design document, updating the rollout plan status for PRs 1-7 to reflect their merged status, and updating all in-tree documentation references to the new filename across the adapter and configuration files. I have no feedback to provide.

@bootjp bootjp merged commit 81b0202 into main May 5, 2026
10 checks passed
@bootjp bootjp deleted the docs/sqs-split-queue-fifo-partial branch May 5, 2026 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant