MapColonies / MapColonies/config

Stability: The Poison-Pill Register

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

Nobody has claimed this yet.

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

Description

### 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

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.