docs(reviews): consumer-findings ledger for alkhttp-as-consumer findings (CF-001 write-failure retryability)
This commit is contained in:
1 parent
570fea76f4
commit
4c99b877e3
1 file changed
+40
@@ -0,0 +1,40 @@
|
||||
# Consumer findings ledger — alkhttp consuming alkcall
|
||||
|
||||
Findings from writing the first real consumer (alkhttp) against alkcall.
|
||||
alkcall is deliberately minimal; expect missing features and edge-case
|
||||
bugs to surface here first. Extract items into alkcall tasks/reviews as
|
||||
the project sees fit.
|
||||
|
||||
Format: date | found-in (alkhttp context) | severity | status.
|
||||
|
||||
---
|
||||
|
||||
## Open
|
||||
|
||||
### CF-001 — `call_single_stream` write-failure maps to non-retryable `INTERNAL` (2026-08-29)
|
||||
|
||||
- **Found in:** alkhttp `from_wss` drop-monitor race tests (WS-02/CON-02,
|
||||
review-001-ws-eof-signal). When the transport mux dies mid-call, the
|
||||
write path fails fast and alkcall's `call_single_stream` write-failure
|
||||
mapping produces a non-retryable
|
||||
`INTERNAL: failed to write request frame` — even though the call never
|
||||
reached the producer and a reconnect/retry would be safe.
|
||||
- **Impact:** consumers that drop connections under load (WS EOF, network
|
||||
flaps) get non-retryable errors for in-flight calls that are provably
|
||||
not processed. Callers must either tolerate-or-discriminate two
|
||||
envelope shapes for the same transport-death race, or miss retry
|
||||
opportunities.
|
||||
- **Suggested direction:** classify write failures that occur before any
|
||||
response frame could arrive as retryable (`CONNECTION_CLOSED` or
|
||||
equivalent) — or expose the distinction so consumers can decide.
|
||||
- **alkhttp side:** the race test tolerates both outcomes for now
|
||||
(asserts retryable only when the call is provably in-flight). If/when
|
||||
alkcall fixes the mapping, alkhttp's ws-eof-signal test should tighten
|
||||
back to retryable-only.
|
||||
- **Status:** open — no alkcall change made.
|
||||
|
||||
---
|
||||
|
||||
## Resolved
|
||||
|
||||
(empty)
|
||||
Reference in new issue
Block a user