hyperledger-identus / hyperledger-identus/sdk-rust
Factory: reconcile concurrent public metric publishers
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- Avg merge
- 39m
- Merged PRs (30d)
- 153
Description
## Outcome
Make concurrent publication of the same exact metrics record converge on one owned GitHub receipt without leaving duplicate marker comments.
## Context
Discovered during the post-remediation automated review of #307. The parent publisher already allowed two processes to observe no owned comment and both create one. #307 improves lost-response recovery but distributed GitHub mutation serialization is independent hardening.
## Acceptance criteria
- Create an OpenSpec-first bounded factory change from current `develop`.
- Define a GitHub-safe convergence protocol for concurrent publishers on different hosts.
- Preserve authenticated ownership, versioned markers, bounded retries, and local-before-remote retention.
- Reconcile or safely quarantine duplicate owned marker comments without deleting unrelated comments.
- Add deterministic race tests for two creates, lost responses, update/create overlap, and retry exhaustion.
- Keep metric payloads and remote errors privacy bounded.
## Evidence
- Source PR: #307
- Review thread: https://github.com/hyperledger-identus/sdk-rust/pull/307#discussion_r4029777949
Contributor guide
Research direction
Start from current develop and read source PR #307, including its review thread, to understand the existing publisher and lost-response handling. Define the bounded OpenSpec-first factory change, then add deterministic race tests covering the listed create, overlap, and retry cases; done means concurrent publishers converge safely without duplicate owned markers or unbounded data exposure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, rust
- Domain
- distributed-systems, observability
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100