Stability: The Poison-Pill Register

Open
#128 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript
Domain
backend

Research direction

Start with the RolloutStateMachine and trace the polling loop, the incoming ETag, and execution of the provided onChange callback; resolve the dependency on issue #125 first. Done means callback failures are caught, the failed ETag is retained in the in-memory Poison-Pill Register, polling advances past it, and later intervals do not retry it.

Written by the indexing model from the issue text.

Description

enhancement
Description

Implement the Poison-Pill Register within the RolloutStateMachine. Wrap the user's onChange callback execution in an error boundary. If the application-level callback throws an error while attempting to reconcile state with the new configuration, the SDK must permanently cache that specific ETag in memory. The state machine must update its internal tracking pointer to this failed ETag so that the continuous polling loop resumes but never attempts to apply that specific faulty configuration version again.

Acceptance criteria
  • Throwing an error inside the provided onChange callback adds the incoming ETag to the internal Poison-Pill Register.

  • The SDK does not enter a rapid-fire crash-loop if onChange fails.

  • Subsequent polling intervals correctly ignore the quarantined ETag.

Blocked by: #125

User stories covered: 6

Dominant language
TypeScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from MapColonies/config

All issues in MapColonies/config

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.