Skip to content

Fix the findings of the 2026-09-07T20-23 architecture review - #17

Merged
dirkjink merged 2 commits into
mainfrom
fix/architecture-review-2026-09-07
Sep 7, 2026
Merged

Fix the findings of the 2026-09-07T20-23 architecture review#17
dirkjink merged 2 commits into
mainfrom
fix/architecture-review-2026-09-07

Conversation

@dirkjink

@dirkjink dirkjink commented Sep 7, 2026

Copy link
Copy Markdown
Member

Remediation of docs/assessment/ARCHITECTURE_REVIEW-2026-09-07T20-23-00.md (fourth round at ffede8b: 3 Medium, 3 Low, 2 patterns), per the review workflow: fix commit first, then the report with per-finding status lines.

Fixed

  • 1 Medium (under-engineering): one BoundedWorkerDispatcher skeleton beneath SendDispatcher and FallbackDispatcher (queue, worker, in-flight ownership, death handler, two-phase close, reentry mark written once); ParallelClose replaces the two hand-rolled deadline-join loops. Dispatcher and appender tests ran unchanged against the extraction.
  • 2 Medium (consistency): the guide's defaults quick reference is canonical and enforced by DocumentationContractTest against the constants (mutation-checked); README links instead of restating.
  • 3 Medium (speculative feature): restart after stop() is refused - ADR-0004 records the decision (Logback replaces instances on reconfiguration; no consumer asks for same-instance restart); the restart symmetry added earlier today is removed.
  • 4 Low: shared test support (TestSupport.kt) replaces four private recorders, four producer factories and three encoders.
  • 5 Low: CI compiles the benchmark module against the freshly built library (compile only). Verified locally.
  • 6 Low: guide section "What is deliberately not configurable", linked from the README.

mvn verify (offline, incl. ktlint): 267 tests green.

🤖 Generated with Claude Code

https://claude.ai/code/session_015GfdGp7eUrjJKBvcJUx3q2

dirkjink and others added 2 commits September 7, 2026 20:48
- M: one BoundedWorkerDispatcher skeleton (queue, worker, in-flight
  ownership, death handler, two-phase close, reentry mark) beneath
  SendDispatcher and FallbackDispatcher, which keep only their
  delivery and their rejection accounting; one ParallelClose helper
  replaces the two hand-rolled deadline-join loops
- M: the configuration guide's defaults quick reference is the
  canonical statement of the "code" defaults, enforced by
  DocumentationContractTest against the constants; README links
  instead of restating the breaker numbers
- M: restart after stop() is refused (ADR-0004) - the restart
  symmetry added on 2026-09-07 (fallback restart, breaker reset,
  guard re-arm) is removed; the binding keeps deciding on the
  appender's bound state
- L: shared test support (RecordingAppender, RecordingProducerFactory,
  three encoders) replaces four private recorders, four private
  producer factories and three private encoders
- L: CI compiles the benchmark module against the freshly built
  library so the regression instrument cannot rot silently
- L: guide section "What is deliberately not configurable" with the
  reason per item, linked from the README extension points

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GfdGp7eUrjJKBvcJUx3q2
Fourth-round appropriateness analysis at ffede8b (0 Critical, 0 High,
3 Medium, 3 Low, 2 systemic patterns); every finding carries its
status line referencing the fix commit, finding 3 recorded as ADR-0004.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015GfdGp7eUrjJKBvcJUx3q2
@dirkjink
dirkjink merged commit 683850c into main Sep 7, 2026
6 checks passed
@dirkjink
dirkjink deleted the fix/architecture-review-2026-09-07 branch September 7, 2026 18:50
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