-
Notifications
You must be signed in to change notification settings - Fork 24
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
Implement RFC 021 Projections api #241
Conversation
74bfe95
to
a190407
Compare
@@ -8,10 +8,10 @@ import { debug, convertToCommandError } from "../utils"; | |||
|
|||
export interface UpdateProjectionOptions extends BaseOptions { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
COMMENT: To have RFC fully implemented, TrackEmittedStreams
has to be added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed, this PR only covers the parts of the RFC currently supported by the server over GRPC (TrackEmittedStreams
is missing in the protos). I should probably update the wording of the PR to mention that (the decision to "polyfill" the gaps was made after this PR).
Based on the updates in https://github.com/EventStore/architecture-and-planning/pull/46/files. Some implementation will need to be aligned, like adding missing methods: I think that setting default values to Delete projection parameters to |
a190407
to
d9fc4d1
Compare
- Create: - Rename `createContinuousProjection` to `createProjection` - Remove `createOneTimeProjection` - Remove `createTransientProjection` - List: - Rename `listContinuousProjection` to `listProjection` - Remove `listOneTimeProjection` - Remove `listTransientProjection` - Details: - remove `mode` from `ProjectionDetails` - delete `CONTINUOUS` `ONE_TIME` & `TRANSIENT` constants - Update: - Rename `trackEmittedStreams` to `emitEnabled` (Was incorrectly named, `trackEmittedStreams` to be added in future version.) - Reset: - remove `writeCheckpoint` option (had no effect) - Disable: - In `disableProjection` remove `writeCheckpoint` option. (Always true) - Add `abortProjection` method. (`writeCheckpoint` always false) - Delete: - `deleteEmittedStreams` defaults to `false` - `deleteStateStream` defaults to `false` - `deleteCheckpointStream` defaults to `false` - Tests: - Update tests to match updated behaviour - Gate fuzzy disable test matching behind server version, for stricter tests on known good server implementations - Samples: - Update samples to match new API
I've updated the PR body to mention that this PR only covers the parts currently supported over GRPC.
Good spot, updated. |
@George-Payne, good to go from my end 👍 Some test for 21.10 is failing (I'm not sure if it's a flakey one). |
This PR implements only the parts of RFC021 currently supported via GRPC.
createContinuousProjection
tocreateProjection
createOneTimeProjection
createTransientProjection
listContinuousProjection
tolistProjection
listOneTimeProjection
listTransientProjection
mode
fromProjectionDetails
CONTINUOUS
ONE_TIME
&TRANSIENT
constantstrackEmittedStreams
toemitEnabled
(Was incorrectly named,trackEmittedStreams
to be added in future version.)writeCheckpoint
option (had no effect)disableProjection
removewriteCheckpoint
option. (Always true)abortProjection
method. (writeCheckpoint
always false)RFC: https://github.com/EventStore/architecture-and-planning/blob/main/rfcs/021%20-%20gRPC%20Projections.md