Skip to content

core(request): rebuild from kameo reference — ask/tell builders #118

Description

@joeldsouzax

Part of the core-rebuild epic — follows the shared rigor contract there.

Component

src/request.rs, src/request/ask.rs, src/request/tell.rs (~2,583 LOC). ask (wait for reply) vs tell (fire-and-forget), timeouts, mailbox-full handling, blocking/try variants.

Learning & discussion

ask correlates a reply over the in-process oneshot; tell just enqueues. Capacity hit and timeout are Result, never panic (rule 4). The builder ergonomics decide the whole public send API.

Existing crates

bon for the request builders (#54) — typed, ergonomic builders over the ask/tell option matrix.

Research — best algorithm/approach

Builder ergonomics (typestate vs bon); ask/tell/timeout semantics; how backpressure is surfaced to the caller.

Testing — hard as fuck

Boundary (timeout fires; mailbox full → Result, not panic; zero-capacity), sequence, linearizability (concurrent ask/tell under contention). DST over timeout/full races. Mutation: cargo-mutants, zero survivors.

Absorbs

#54 (bon request builders).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions