Skip to content

core(reply): rebuild from kameo reference — Reply + Delegated/Forwarded + ReplySender #115

Description

@joeldsouzax

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

Component

src/reply.rs (~1,048 LOC). Reply, DelegatedReply, ForwardedReply, ReplySender, ReplyError.

Learning & discussion

The reply channel is an in-process oneshot — no serialization locally. Delegated/forwarded replies let another actor answer on this actor's behalf. Dropping a ReplySender without replying must surface an error to the caller, never hang.

Existing crates

tokio::sync::oneshot for the reply channel — evaluate.

Research — best algorithm/approach

Reply-channel lifecycle; delegated/forwarded-reply patterns; drop-without-reply semantics.

Testing — hard as fuck

Lifecycle (drop ReplySender → caller gets ReplyError, not a hang), sequence, linearizability (concurrent ask + reply). DST over reply/drop races. Mutation: cargo-mutants, zero survivors.

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