Summary
StoryDispatcher records impulse trigger stats by patching the owning Impulse status on every trigger attempt. The current path is correct, but it is expensive for high-volume impulses because it adds GET/PATCH conflict traffic on the Kubernetes API for what is effectively operational telemetry.
Evidence
bubu-sdk-go/story_dispatcher.go:314 calls UpdateImpulseTriggerStats on every trigger attempt.
bubu-sdk-go/k8s/impulse_stats.go:63 implements that path as a Get + status Patch wrapped in retry.RetryOnConflict.
Why this matters
This status-update churn stacks on top of the trigger-resolution polling path. On busy impulses, the SDK is doing extra API work just to maintain counters that are useful operationally but do not participate in the durable trigger contract.
Expected direction
- Add an in-process aggregation/coalescing path for impulse trigger stats.
- Preserve useful status visibility while reducing API churn.
- Keep the durable admission authority on
StoryTrigger; this issue is about telemetry and operator load, not changing trigger semantics.
Notes
This appears to be repo-local follow-up work in bubu-sdk-go, not a duplicate of the current bobrapet backlog.
Summary
StoryDispatcherrecords impulse trigger stats by patching the owningImpulsestatus on every trigger attempt. The current path is correct, but it is expensive for high-volume impulses because it adds GET/PATCH conflict traffic on the Kubernetes API for what is effectively operational telemetry.Evidence
bubu-sdk-go/story_dispatcher.go:314callsUpdateImpulseTriggerStatson every trigger attempt.bubu-sdk-go/k8s/impulse_stats.go:63implements that path as aGet+ statusPatchwrapped inretry.RetryOnConflict.Why this matters
This status-update churn stacks on top of the trigger-resolution polling path. On busy impulses, the SDK is doing extra API work just to maintain counters that are useful operationally but do not participate in the durable trigger contract.
Expected direction
StoryTrigger; this issue is about telemetry and operator load, not changing trigger semantics.Notes
This appears to be repo-local follow-up work in
bubu-sdk-go, not a duplicate of the current bobrapet backlog.