Skip to content

[Initiative] Tag-Gated Sync Controller for Atomic Release Promotion #132

@juliuskrah

Description

@juliuskrah

Summary

Implement a tag-gated Sync Controller that reconciles Git-tagged catalog state into the live Scylla-backed projection, with atomic promotion and rollback.

The objective is to make release tags the production gate: controllers hydrate and validate tagged state, then atomically flip the active pointer so storefront reads move to a known-good snapshot.

In Scope

  • Define the Sync Controller contract that reconciles from Git tags (not branch HEAD) into read-side state.
  • Support release-triggered hydration of tagged catalog snapshots.
  • Add atomic promotion semantics (single pointer/snapshot switch) after validation passes.
  • Support rollback by retargeting to an earlier tag and reconciling to that snapshot.
  • Define validation failure behavior so rejected releases never become live.
  • Add integration tests for promote, failed promote, and rollback flows.
  • Document operational runbooks for release and rollback.

Out of Scope

  • CI/CD pipeline authoring for release tags.
  • Mutating admission or schema evolution mechanics.
  • Replacing Git as source of truth.
  • Frontend release UX.

Acceptance Criteria

  • Sync only promotes state from explicit release tags.
  • Tagged snapshot hydration occurs before live-state promotion.
  • Promotion to live state is atomic from reader perspective.
  • Rollback to a previous release tag is supported and tested.
  • Failed validation prevents promotion and surfaces actionable diagnostics.
  • Docs include release/rollback commands and troubleshooting guidance.

Area

infra

Priority

p2 – high

Target Milestone / Release

TBD

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions