Improve mutation channel robustness
- Add event type constants (MutationCreate, MutationUpdate, MutationDelete, MutationComment) - Make buffer size configurable via BEADS_MUTATION_BUFFER (default 512, up from 100) - Add defensive closed-channel handling in event loop consumer - Add 1s dropped-events ticker (down from 60s) for faster recovery - Verify mutationChan is never closed (prevents panic) Oracle review findings addressed: - Eliminates panic risk from send-on-closed-channel - Reduces worst-case recovery latency from 60s to 1s - Increases buffer capacity for better burst handling - Type-safe event constants prevent string typos Related: bd-36320a04, bd-1f4086c5
This commit is contained in:
@@ -161,7 +161,7 @@ func (s *Server) handleCreate(req *Request) Response {
|
||||
}
|
||||
|
||||
// Emit mutation event for event-driven daemon
|
||||
s.emitMutation("create", issue.ID)
|
||||
s.emitMutation(MutationCreate, issue.ID)
|
||||
|
||||
data, _ := json.Marshal(issue)
|
||||
return Response{
|
||||
@@ -195,7 +195,7 @@ func (s *Server) handleUpdate(req *Request) Response {
|
||||
}
|
||||
|
||||
// Emit mutation event for event-driven daemon
|
||||
s.emitMutation("update", updateArgs.ID)
|
||||
s.emitMutation(MutationUpdate, updateArgs.ID)
|
||||
|
||||
issue, err := store.GetIssue(ctx, updateArgs.ID)
|
||||
if err != nil {
|
||||
@@ -232,7 +232,7 @@ func (s *Server) handleClose(req *Request) Response {
|
||||
}
|
||||
|
||||
// Emit mutation event for event-driven daemon
|
||||
s.emitMutation("update", closeArgs.ID)
|
||||
s.emitMutation(MutationUpdate, closeArgs.ID)
|
||||
|
||||
issue, _ := store.GetIssue(ctx, closeArgs.ID)
|
||||
data, _ := json.Marshal(issue)
|
||||
|
||||
Reference in New Issue
Block a user