Limit the number of inflight writes per projection to 1 #1373
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In an Event Store under significant load, the projections that write events to streams could flood the node with writes. This will result in quite a number of write timeouts.
This is because a projection can have a write in flight for each unique stream it writes to.
This PR allows a projection to only have a single write in flight regardless of the number of unique streams it writes to. This significantly reduces the chances of a commit timeout and have each projection act like a well behaved client.
Todo:
We could look at making this a configuration option and let the user configure how many writes in flight a projection is allowed to have.