Summary
Define the gRPC notification stream from gitstore-git-service to gitstore-api so the API can react to Git changes without WebSockets. The stream should carry commit/ref transition events and provide the control-plane trigger for sync and admission handling.
In Scope
- Define a
GitEvent gRPC payload contract for ref changes, old/new SHA values, and event type
- Implement a server-streaming notification path from git-service to API
- Route push and tag events through the stream so the API can decide whether to hydrate draft/latest state or promote live state
- Add contract tests for event delivery, reconnect behavior, and event typing
- Document the event flow and operational expectations across the two services
Out of Scope
- The hydration and live-promotion logic itself (tracked separately)
- Replacing Git wire protocol handling
- UI notifications or browser-based realtime updates
- Authentication/authorization policy design
Acceptance Criteria
Implementation Notes
This stream is the control-plane equivalent of a watch mechanism: the git-service tells the API that Git state changed, but the API remains responsible for interpreting and materializing that change. Keeping the notification channel on gRPC preserves a clean service boundary and aligns with the rest of the Git-service decoupling work. The stream should be minimal and event-oriented, not a transport for business logic.
Dependencies
Summary
Define the gRPC notification stream from
gitstore-git-servicetogitstore-apiso the API can react to Git changes without WebSockets. The stream should carry commit/ref transition events and provide the control-plane trigger for sync and admission handling.In Scope
GitEventgRPC payload contract for ref changes, old/new SHA values, and event typeOut of Scope
Acceptance Criteria
gitstore-git-serviceemits ref-change events togitstore-apiover gRPCImplementation Notes
This stream is the control-plane equivalent of a watch mechanism: the git-service tells the API that Git state changed, but the API remains responsible for interpreting and materializing that change. Keeping the notification channel on gRPC preserves a clean service boundary and aligns with the rest of the Git-service decoupling work. The stream should be minimal and event-oriented, not a transport for business logic.
Dependencies