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

Merry: Projections Management with CLI #627

Merged
merged 42 commits into from
Feb 14, 2022
Merged

Merry: Projections Management with CLI #627

merged 42 commits into from
Feb 14, 2022

Conversation

jakhog
Copy link
Contributor

@jakhog jakhog commented Feb 10, 2022

Summary

A new management service for Projections, and accompanying CLI commands to get the status and details for registered Projections, and a command to manually force a replay of a Projection. A replay of a projection involves removing all the persisted read models (and potential copies in MongoDB), and restarting the processing from the first event in the Event Store. This can be used to force a replay for changes in Projections that are not automatically detected (e.g. code changes), or to fix copies that have been changed by mistake.

An unrelated, but also useful change is the gRPC Server Reflection service that has been added to all the endpoints. This makes it easier to interact with the Runtime while testing out things, without having to write a client in code.

Added

  • Projections can now register with an Alias
  • Implemented the Projections management service to List, Get and Replay registered Projections
  • Exposed the gRPC Server Reflection service on all endpoints. This allows for easier debugging and testing of gRPC endpoints using tools like Postman, grpc_cli, or gRPCurl
  • CLI commands "projections list", "projections get ", "projections replay ", to interact with the Projections management service.

Fixed

  • A bug in the Handshake service version compatibility checker rejected connections from a Head that was using a version of Contracts with the same major but a lesser minor (e.g. Runtime using v6.8.0 and Head using v6.7.0). This should be allowed, and is now fixed.
  • Implemented the GetOne endpoint on the Event Handler management service, and changed the CLI to use this method when getting a single Event Handler. This reduces a bit of work and traffic.

@jakhog jakhog added the minor label Feb 10, 2022
…orm before resetting the position. It's not pretty, but it works.
Implement Projections management service
…iple tasks cancelling all of them if one completes.
Copy link
Contributor

@woksin woksin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Just commit the doc fix suggestion and upgrade the contracts

Source/Events.Processing.Management/Projections/Log.cs Outdated Show resolved Hide resolved
@woksin woksin marked this pull request as ready for review February 14, 2022 09:38
jakhog and others added 2 commits February 14, 2022 10:38
Co-authored-by: Sindre Alstad Wilting <woksin@users.noreply.github.com>
@jakhog jakhog merged commit 8b1d271 into master Feb 14, 2022
@jakhog jakhog deleted the 7.8.0-merry branch February 14, 2022 09:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants