feat(projection): pilot checkpointing behavior inside Projection.Apply #54
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.
Sometimes it's desirable to specify inside a Projection whether the message being consumed should be checkpointed or not.
Example: projecting messages to a Kafka topic using batching -- if a whole batch fails, but we already committed the batch events processed in the Projection, then we need manual intervention.
This PR adds the following modifications:
projection.Runner
creates some checkpointing information (*bool
) and post it in the context forProjection.Apply
to use it,projection.Checkpoint(ctx)
, where the context set byprojection.Runner
specifies to checkpoint the current message if successful,projection.DoNotCheckpoint(ctx)
, as above but without checkpointing.