feat(stovepipe): record accepted request state - #658
Merged
Merged
Conversation
mnoah1
force-pushed
the
mnoah1/stovepipe-request-history-accepted
branch
4 times, most recently
from
September 1, 2026 17:35
e441df5 to
c3257ba
Compare
mnoah1
marked this pull request as ready for review
September 1, 2026 20:48
mnoah1
requested review from
a team,
behinddwalls and
sbalabanov
as code owners
September 1, 2026 20:48
behinddwalls
approved these changes
Sep 2, 2026
Base automatically changed from
mnoah1/stovepipe-request-history-recorder
to
main
September 2, 2026 18:28
Summary: Intent: - Establish every newly admitted request's initial history before dependent processing begins. - Make an Ingest retry repair a missing accepted entry before republishing work. Changes: - Record the durable accepted request through the queue-scoped request log store. - Stop queue-pointer advancement and process publication when recording fails. - Wire one recorder instance into Ingest and cover new, duplicate, repair, and failure paths. This PR builds on #657, which introduces the request state log recorder. --- <sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
behinddwalls
force-pushed
the
mnoah1/stovepipe-request-history-accepted
branch
from
September 2, 2026 18:28
c3257ba to
7ec0802
Compare
behinddwalls
pushed a commit
to behinddwalls/submitqueue
that referenced
this pull request
Sep 25, 2026
## Summary Intent: - Provide one direct, idempotent materialization path for durable request state logs. - Keep the initial rollout limited to state entries while preserving a boundary for future request summaries and other projections. Changes: - Add `Materializer.PersistLog` over the queue-scoped storage aggregate. - Compose readable stable occurrence IDs with `publish.IntentID`. - Deduplicate retained occurrences because Stovepipe writes directly; SubmitQueue instead deduplicates the message carrying a log to its materializer. - Preserve caller-supplied timestamps, assign missing timestamps, and reconcile duplicate writes by retained semantic content. - Emit bounded metrics with context-derived tags. - Document how future projections can be added within the materializer without changing callers. ## Test Plan - `./tool/bazel test //stovepipe/core/requestlog:go_default_test --cache_test_results=no` - `make check-gazelle` - `make lint` ## Revert Plan - Revert this PR. No production call site depends on the materializer until the next PR in the stack lands. ## Issues ## Stack 1. @ uber#657 1. uber#658
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Intent:
Changes:
NewRequestStateLogand persist it throughMaterializer.PersistLog.This PR builds on #657, which introduces the request log materializer.
Test Plan
bazel test //stovepipe/controller:go_default_test //service/stovepipe/server:go_default_test --cache_test_results=nomake check-gazellemake lintRevert Plan
Issues
Stack