Skip to content

docs(events): record that the broker refactor is not planned - #199

Merged
vovinacci merged 1 commit into
mainfrom
docs/nats-capstone-framing
Jul 27, 2026
Merged

docs(events): record that the broker refactor is not planned#199
vovinacci merged 1 commit into
mainfrom
docs/nats-capstone-framing

Conversation

@vovinacci

@vovinacci vovinacci commented Jul 27, 2026

Copy link
Copy Markdown
Owner

At-most-once delivery with no durability is permanent. Ten places across six files still described it as temporary - "the NATS capstone", "deferred to a capstone phase", "explicitly in scope", "until the transactional outbox arrives" - promising a fix that is not coming. The gap is a deliberate teaching exhibit, and reading it as unfinished work misreads the design.

RFC-0001 and ADR-0002 are amended in place with notes recording the original wording, the pattern already used at RFC-0001:448 (Renovate) and :513 (MailHog -> Mailpit). Both keep the NATS name, since they are the documents that chose it and later dropped it; the amendment notes quote what they used to say. Section 10's bullet and ADR-0002's Context/Alternatives/Consequences carry the full note. Sites that already pointed at Section 10 take the short "(Section 10, amended)" form rather than repeating it five times.

The phase table keeps row 7 and gains a note: phase 7 never happened as written, and the arc after Phase 6 is RFC-0003 with authentication as the capstone (RFC-0004).

The four consuming documents drop the forward reference entirely and state the limitation as accepted and permanent. Exercise 03's second discussion question keeps asking students to sketch a transactional outbox -- that is still a good question about a design this system deliberately does not have.

Behaviour is unchanged; so is every claim about what the system does today.

Summary by CodeRabbit

  • Documentation
    • Clarified that at-most-once event delivery and potential event loss are accepted design decisions and permanent limitations.
    • Updated architecture guidance, exercises, ADRs, RFCs and backend documentation to reflect that broker-based recovery and transactional outbox improvements are not planned.
    • Revised future delivery plans to focus on infrastructure and authentication rather than a broker refactor.

At-most-once delivery with no durability is permanent. Ten places across
six files still described it as temporary -- "the NATS capstone", "deferred
to a capstone phase", "explicitly in scope", "until the transactional outbox
arrives" -- promising a fix that is not coming. The gap is a deliberate
teaching exhibit, and reading it as unfinished work misreads the design.

RFC-0001 and ADR-0002 are amended in place with notes recording the original
wording, the pattern already used at RFC-0001:448 (Renovate) and :513
(MailHog -> Mailpit). Both keep the NATS name, since they are the documents
that chose it and later dropped it; the amendment notes quote what they used
to say. Section 10's bullet and ADR-0002's Context/Alternatives/Consequences
carry the full note. Sites that already pointed at Section 10 take the short
"(Section 10, amended)" form rather than repeating it five times.

The phase table keeps row 7 and gains a note: phase 7 never happened as
written, and the arc after Phase 6 is RFC-0003 with authentication as the
capstone (RFC-0004).

The four consuming documents drop the forward reference entirely and state
the limitation as accepted and permanent. Exercise 03's second discussion
question keeps asking students to sketch a transactional outbox -- that is
still a good question about a design this system deliberately does not have.

Behaviour is unchanged; so is every claim about what the system does today.
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d86417f-bbac-4480-b744-3f0b010f2f3d

📥 Commits

Reviewing files that changed from the base of the PR and between ac09f47 and 3e04f77.

📒 Files selected for processing (6)
  • docs/adr/0002-grpc-direction-streaming-buf.md
  • docs/architecture.md
  • docs/exercises/03-break-the-event-stream.md
  • docs/rfc/0001-polyglot-platform.md
  • services/backend/README.md
  • services/backend/app/events.py
 ______________________________________________________________________________________________________________________________________________________________________________________________________
< Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. - Brian Kernighan >
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ 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/nats-capstone-framing

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/adr/0002-grpc-direction-streaming-buf.md`:
- Around line 10-11: Preserve accepted records as immutable historical documents
and move all revised decisions into new superseding records. In
docs/adr/0002-grpc-direction-streaming-buf.md lines 10-11, 31-34, and 46-49,
restore the original broker-scope, alternative, and consequences wording, then
append or reference the amendment in the superseding ADR. In
docs/rfc/0001-polyglot-platform.md lines 46, 127, 202-203, 212-216, 542-546, and
557-562, restore the original scope, analytics, teaching rationale, limitation,
delivery plan, and future-work text, documenting each revised decision in the
superseding RFC instead.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d86417f-bbac-4480-b744-3f0b010f2f3d

📥 Commits

Reviewing files that changed from the base of the PR and between ac09f47 and 3e04f77.

📒 Files selected for processing (6)
  • docs/adr/0002-grpc-direction-streaming-buf.md
  • docs/architecture.md
  • docs/exercises/03-break-the-event-stream.md
  • docs/rfc/0001-polyglot-platform.md
  • services/backend/README.md
  • services/backend/app/events.py

Comment thread docs/adr/0002-grpc-direction-streaming-buf.md
@vovinacci
vovinacci merged commit 4fd81cd into main Jul 27, 2026
28 checks passed
@vovinacci
vovinacci deleted the docs/nats-capstone-framing branch July 27, 2026 18:40
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