Skip to content

Generalized Solution for avoiding Out-of-Order Cache Child ChangeSets#1009

Merged
dwcullop merged 12 commits intoreactivemarbles:mainfrom
dwcullop:bugfix/preserve-changeset-order
May 28, 2025
Merged

Generalized Solution for avoiding Out-of-Order Cache Child ChangeSets#1009
dwcullop merged 12 commits intoreactivemarbles:mainfrom
dwcullop:bugfix/preserve-changeset-order

Conversation

@dwcullop
Copy link
Copy Markdown
Member

@dwcullop dwcullop commented May 27, 2025

Description

As a follow up to #1007, I looked for other operators that are handling Remove/Update changes as a separate step and found that MergeManyChangeSets has a similar defect (as shown by the newly included unit test).

This PR introduces a base class that implements the general solution for handling a parent changeset where each item owns a child subscription and then it adapts existing operators to use it:

  1. TransformOnObservable
  2. MergeManyChangeSets
  3. MergeManyChangeSets (Source Compare)
  4. MergeManyChangeSets (Cache -> List)
  5. TransformManyAsync
  6. GroupOnObservable

I think that is all of them for Cache. The List versions of the MergeManyChangeSets have a similar issue, but I will need to make a List version of CacheParentSubcription, so I will address that in another PR.

@dwcullop dwcullop requested a review from RolandPheasant May 27, 2025 00:22
@dwcullop dwcullop changed the title Generalized Solution for Out-of-Order Child ChangeSets Generalized Solution for avoiding Out-of-Order Cache Child ChangeSets May 27, 2025
@dwcullop dwcullop requested a review from JakenVeina May 27, 2025 20:37
@dwcullop dwcullop enabled auto-merge (squash) May 27, 2025 20:39
@dwcullop dwcullop merged commit 77f9539 into reactivemarbles:main May 28, 2025
1 check passed
@github-actions
Copy link
Copy Markdown

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants