Skip to content

docs(adr): ADR-011 — error handling / Result pattern (Accepted) - #2

Merged
serhat24 merged 2 commits into
mainfrom
adr/011-result-pattern
Jul 21, 2026
Merged

docs(adr): ADR-011 — error handling / Result pattern (Accepted)#2
serhat24 merged 2 commits into
mainfrom
adr/011-result-pattern

Conversation

@serhat24

Copy link
Copy Markdown
Owner

First Phase 1 ADR. Accepted after review.

Decision: custom Result/Result<T> + Error + ErrorType; single Result → RFC 9457 problem-details mapper via IProblemDetailsService.

  • Taxonomy → HTTP: Validation 400 · NotFound 404 · Conflict 409 · Forbidden 403 · Unauthorized 401 · Unexpected 500
  • Results = expected failures; exceptions = bugs/infrastructure
  • "slot already taken" traced end-to-end (domain → handler → 409 problem+json → Angular)
  • type: about:blank (9457 default); validation carries field-level errors dict (Signal Forms contract)
  • ErrorOr named as the MIT off-ramp; licensing-honesty paragraph kept
  • Also fixes ROADMAP RFC 7807RFC 9457 (3 mentions)

🤖 Generated with Claude Code

serhat24 and others added 2 commits July 21, 2026 23:08
Decision-level MADR. Recommends custom Result/Result<T> + Error +
ErrorType taxonomy with a single Result -> RFC 9457 problem-details
mapper via IProblemDetailsService. Traces the "slot already taken"
failure end to end; taxonomy -> HTTP status table; Results-vs-exceptions
boundary. Verified 2026-07-21: RFC 9457 obsoletes 7807; .NET 10 problem
details APIs; ErrorOr/FluentResults both MIT (ErrorOr = off-ramp).
Status: Proposed. First Phase 1 ADR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Incorporate review edits: note 422 considered/rejected for validation
(400 = ASP.NET default); set problem-details type explicitly to
about:blank (RFC 9457 default) with future type-URI catalog deferred;
pin the plural field-level validation `errors` contract that ADR-009 /
Signal Forms consume. Fix ROADMAP RFC 7807 -> RFC 9457 (3 mentions).
Status: Proposed -> Accepted; update index.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@serhat24
serhat24 merged commit dd69d73 into main Jul 21, 2026
2 checks passed
@serhat24
serhat24 deleted the adr/011-result-pattern branch July 21, 2026 21:29
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