Skip to content

Update sagas.md - #534

Merged
jeremydmiller merged 1 commit into
JasperFx:mainfrom
JoshuaNitschke:patch-1
Sep 11, 2023
Merged

Update sagas.md#534
jeremydmiller merged 1 commit into
JasperFx:mainfrom
JoshuaNitschke:patch-1

Conversation

@JoshuaNitschke

Copy link
Copy Markdown
Contributor

The "start" verbiage confused me as it overlaps the special Start handler.

I think this slight clarification helps make things a bit more clear.

The "start" verbiage confused me as it overlaps the special Start handler.

I think this slight clarification helps make things a bit more clear.
@jeremydmiller
jeremydmiller merged commit ad3c504 into JasperFx:main Sep 11, 2023
@JoshuaNitschke
JoshuaNitschke deleted the patch-1 branch September 11, 2023 15:36
jeremydmiller added a commit that referenced this pull request Jul 26, 2026
…, #3638, #3519) (#3658)

Bumps JasperFx/JasperFx.Events 2.34.0 -> 2.36.1, Marten 9.18.0 -> 9.20.0 and
Polecat [5.5.0,6.0.0) -> [5.7.0,6.0.0), the release carrying #565/#567
(ShardFailure + ISubscriptionAgent.Failure) and #534/#540.

WO-8 (#3637 / #3638): a shard the daemon pauses on an ApplyEventException was
visible only as AgentStatus.Paused, so progress flatlined with nothing
actionable to alert on.

- IEventSubscriptionAgent.Failure (default-null DIM); EventSubscriptionAgent
  delegates it to the live inner agent the way Status has since GH-3519.
- Health checks report the failure category, the failing event's sequence and
  type, and the root exception type instead of a fixed "paused due to errors".
- Failures bound to a specific event (ApplyEvent, EventSerialization,
  UnknownEventType) or to two processes racing one shard
  (ProgressionOutOfOrder) are no longer swept back up by the GH-3519 wedge
  recovery -- they would die on the identical event on every restart. Only
  Other, the category auto-restart exists for, is still retried.
- IWolverineObserver.AgentPaused(uri, failure) default-no-op hook plus a
  NodeRecordType.AgentPaused record, fired once per transition into failure by
  a per-node sweep in the health-check loop. Observe-only, per the analysis in
  #3637 s4: the anti-thrash guards already hold and detaching would risk the
  re-assignment churn WO-1..7 removed.

#3519: the daemon-side causes of the wedged first-assignment start land with
this bump. What was left here was WHEN the retry happens -- the node only
retried on the next assignment reevaluation, so the loser of a sub-second
startup race idled for a full CheckAssignmentPeriod. StartAgentAsync now
retries locally, bounded by Durability.AgentStartRetryAttempts (default 2) and
AgentStartRetryDelay (default 250ms, multiplied by attempt number), preserving
the last cause when it gives up.

19 new tests in CoreTests; full CoreTests (2088) and MartenTests Distribution
(57) green, wolverine.slnx builds clean in Release.


Claude-Session: https://claude.ai/code/session_014DkTEuNQQdPp63WLY86KzC

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants