Skip to content

Release v16.22.2

Choose a tag to compare

@github-actions github-actions released this 11 Aug 04:02
93ef919

Summary

A rolling redeploy of client services could turn projection registration into a self-sustaining storm: every replica re-registered the same definitions on startup, the kernel processed the full fan-out every time, callers timed out while their request was still queued, and their retries enqueued the same workload again - so the queue never drained. This makes an identical re-registration near-free on the kernel and stops the client from stacking retries.

Fixed

  • Registering projection definitions that are identical to the ones already registered no longer repeats the registration fan-out - the kernel only processes definitions that are new or changed, so restarting or reconnecting clients of the same version register near-instantly and queued duplicate registrations collapse instead of piling up
  • The .NET client no longer stacks registration retries: RegisterAll runs as a single flight per event store - a call arriving while a registration is in flight joins that run instead of sending a duplicate - and a run that follows a failure waits an exponentially growing, jittered backoff before hitting the kernel again
  • An interrupted registration is retried in full on the next attempt instead of being skipped as already registered

🤖 Generated with Claude Code