Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate alternative ways of handling snapshots to avoid race conditions #1330

Open
SvenHoeffler opened this issue Oct 6, 2021 · 0 comments
Assignees

Comments

@SvenHoeffler
Copy link
Contributor

Due to the asynchronous nature of emitting snapshots, a connector has no way of knowing whether an emitted snapshot was successfully stored in the snapshot repository.

In the worst case, this an lead to race conditions when the snapshot service is overloaded or the component takes a particularly long time to execute before emitting a snapshot. In those cases, the next execution of a polling flow could happen before the snapshot is stored, leading to component working off of outdated information and e.g. emitting the same data repeatedly.

A potential workaround could be expanding the ferryman to inject an alternate, synchronous function for storing snapshots. That way, a component could ensure that a snapshot was stored properly before continuing with further execution.

@SvenHoeffler SvenHoeffler self-assigned this Oct 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant