You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changed
Projections a client no longer registers are retired when the client registers its full set: the observer is unsubscribed in every namespace, jobs and failed partitions are cleared, and the definition is removed from the engine and storage. The sink container is never dropped (#3725)
When a retired projection wrote to the same container as another registered projection - a renamed read model keeps its container name - a replay recommendation is raised for the successor so the container can be rebuilt cleanly (#3725)
Partial projection registrations (such as saving a single projection from the Workbench) never retire anything, and the client SDK only declares a full set when every discovered artifact produced a definition (#3725)
Fixed
One rejected projection definition no longer aborts the whole registration: failures are isolated per definition, every other definition still lands, and the failed ones are reported and retried on the next registration instead of being left silently stale (#3722)
A projection whose pipeline cannot be built - for example a stale definition referencing a child collection the read model schema no longer has - no longer fails its grain activation and retries blindly forever; the failed partition now carries a descriptive error naming the projection, the child property and the read model, and the pipeline heals as soon as the definition is corrected (#3722)
Re-registering a projection with only a child collection changed now correctly evicts the cached pipeline in the observer subscriber (#3722)