hyperledger-identus / hyperledger-identus/sdk-rust

Follow-up: evaluate cancellation-safe DID resolution single-flight

Open
#50 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
0
Forks
0
Avg merge
39m
Merged PRs (30d)
153

Description

## Context

Issue #45 deliberately keeps the generic cache decorator runtime-neutral and permits duplicate-safe concurrent fills. Hiding blocking synchronization in the domain crate would risk executor stalls and cancellation deadlocks.

## Trigger

Start implementation only after at least two independent SDK consumers or adapters demonstrate the same request-coalescing requirement and cancellation semantics.

## Expected outcome

- Compare outer-adapter coordination with an optional SDK coordinator.
- Specify cancellation recovery, waiter wake-up, timeout, panic/drop, and retry behavior before code.
- Preserve Send + Sync portability across native, mobile, and wasm targets.
- Prove that no blocking mutex or executor-specific dependency leaks into identus-did.
- Add load/performance evidence and adversarial cancellation tests.

## Non-goals until triggered

No single-flight implementation is required for #45. Duplicate concurrent origin calls remain an explicit and tested contract; cache correctness and boundedness do not depend on coalescing.

Related: #5, #20, #45.

Contributor guide

Open the contributing guide

Research direction

Start with related issues #5, #20, and #45, especially the generic cache decorator contract and the identus-did portability constraint. Wait for at least two independent SDK consumers or adapters to demonstrate the requirement, then compare outer-adapter coordination with an optional SDK coordinator. Done means cancellation, wake-up, timeout, panic/drop, retry, portability, and load-test behavior are specified and adversarial tests provide evidence without blocking or executor-specific dependencies leaking into identus-did.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, performance, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.