Skip to content

Retire the client-side changelog registry refresh - #3760

Open
cotti wants to merge 1 commit into
changelog-registry-scrubber-ownershipfrom
changelog-retire-client-registry-refresh
Open

Retire the client-side changelog registry refresh#3760
cotti wants to merge 1 commit into
changelog-registry-scrubber-ownershipfrom
changelog-retire-client-registry-refresh

Conversation

@cotti

@cotti cotti commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Why

Phase 3 of elastic/docs-eng-team#688, stacked on #3738. With the scrubber Lambda as the sole producer of the public bundle manifests and the shallow per-tree maps (#3738), the client-side registry refresh is the last remaining writer in the retired multi-writer model. Keeping it would let a stale private manifest linger (nothing consumes it anymore) and would keep upload logs claiming registry responsibility the CLI no longer has.

Note

Restacked 2026-08-06: this PR previously sat on #3741 (registry reconcile/verify CLI), which was closed after review — the per-product registry cutover tooling went with it. It now stacks directly on #3738, whose rework scopes group reconciliation to the bundle tree and adds the shallow folder→token maps.

What

changelog upload now writes YAML objects only: the post-upload refresh block, RegistryBuilder, and the private-manifest write path are gone. The registry materializes from the S3 events the upload already emits. The amend end-to-end test now drives RegistryReconciler (the production path) for its registry step, and the upload tests assert that no registry.json is ever PUT.

Old binaries in the wild keep writing private manifests — harmless: bundle registry-key events only schedule a group reconcile and are never copied to the public bucket.

Important

Do not merge until the Phase 2 cutover checkpoint passes (scrubber Lambda deployed with #3738, queue drained, DLQ empty, and a spot-check that public bundle/{product}/registry.json manifests carry the reconciler's producer field — see elastic/docs-eng-team#688). Releasing this before the Lambda owns the public registry would leave registries permanently stale.

After this releases, the now-dead private registry.json objects can be deleted (operational step, no code): their ObjectRemoved events only schedule redundant reconciles.

Part of elastic/docs-eng-team#688 (Phase 3).

The scrubber Lambda is the sole producer of the public registry.json,
reconciled from public bucket state on the S3 events every upload already
emits (elastic/docs-eng-team#688 Phase 3). Uploads now write YAML objects
only; RegistryBuilder and the private-manifest write path are removed, and
the amend end-to-end test exercises RegistryReconciler instead.
@cotti
cotti force-pushed the changelog-retire-client-registry-refresh branch from cc65ecf to 95b64ed Compare August 6, 2026 15:30
@cotti
cotti changed the base branch from changelog-registry-reconcile-cli to changelog-registry-scrubber-ownership August 6, 2026 15:34
cotti added a commit that referenced this pull request Aug 6, 2026
Restacked on the scrubber-ownership chain: the scrubber Lambda owns the
public bundle/{product}/registry.json manifests and the shallow per-tree
maps (#3738), and the client-side refresh machinery is retired (#3760).
The migration command now writes YAML bundle objects only; the S3 events
those creates emit trigger the reconciliation that materializes the
manifests. Tests assert no registry.json is ever PUT.
@cotti

cotti commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Restacked: #3741 was closed with the per-product cutover tooling, so this now sits directly on #3738 (rebased onto its reworked branch — shallow per-tree maps, group reconcile scoped to the bundle tree). Same single commit, no content changes beyond the rebase; 849/849 tests green on the new chain. Now part of stack #3800 (#3738 ← this ← #3794).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants