Skip to content

Conversation

@micheleRP
Copy link
Contributor

@micheleRP micheleRP commented Nov 25, 2025

Description

This pull request single sources and conditionalizes Shadowing content for Cloud.

It also restructures the configuration page, moving conceptual content into the overview & moving Create shadow link section toward the top of the config page.

(Single sourcing for this in cloud-docs repo is done in redpanda-data/cloud-docs#462. That one will merge Dec 12, to make Shadowing visible in Cloud docs.)

  • Added // tag::single-source[] and // end::single-source[] markers to support reuse and conditional rendering across cloud and self-hosted documentation. [1] [2] [3] [4] [5]
  • Introduced ifdef::env-cloud[] and ifndef::env-cloud[] blocks for environment-specific notes, requirements, and tips—such as licensing, authentication, and cluster property configuration. [1] [2] [3]
  • Added cloud-specific tips for shadow link management and clarified the flexibility of shadow link creation and management in Redpanda Cloud. [1] [2]

Resolves https://redpandadata.atlassian.net/browse/DOC-1667
Review deadline: Dec 10

Page previews

What's New in Redpanda Cloud
Shadowing in Cloud
rpk shadow in Cloud

Checks

  • New feature
  • Content gap
  • Support Follow-up
  • Small fix (typos, links, copyedits, etc)

@netlify
Copy link

netlify bot commented Nov 25, 2025

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit 2b79cbc
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/692f5c342eb2130008dd03c6
😎 Deploy Preview https://deploy-preview-1491--redpanda-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 25, 2025

📝 Walkthrough

Walkthrough

This PR implements environment-specific documentation branching for disaster recovery shadowing features. It updates the Antora playbook to reference a feature branch for cloud-docs content, then modifies multiple shadowing documentation files to include conditional content blocks that differentiate between cloud and non-cloud environments. Environment-specific sections are gated using ifndef::env-cloud[] and ifdef::env-cloud[] directives, and single-source region markers delineate content boundaries. A new cloud-specific tip file is introduced, cross-reference links are corrected from deploy: to manage: module paths, and minor terminology and formatting adjustments are applied throughout.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Feature branch reference in local-antora-playbook.yml requires verification for correctness and merge strategy
  • Multiple interconnected documentation files with paired conditional blocks and single-source markers need validation for proper closure and nesting
  • Cross-reference link updates (deploy: → manage:) should be verified for accuracy across all affected files
  • Content rewording and terminology standardization (e.g., capitalization changes, metric label lowercase adjustments) should be checked for consistency
  • Ensure conditional content is appropriately present/absent in each environment branch

Possibly related PRs

  • PR #1481 — Modifies the same disaster-recovery shadowing documentation files and adjusts cross-reference targets to manage:disaster-recovery/...
  • PR #1329 — Adds/repairs single-source tag regions, gates license content with env-cloud conditionals, and fixes cross-repo links in similar fashion
  • PR #1478 — Modifies the same documentation surface (Antora playbook and multiple shadowing docs with environment-conditional markup changes)

Suggested reviewers

  • mattschumpert
  • paulohtb6
  • Feediver1

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title directly refers to the main objective of the PR: documenting shadow links in cloud with comprehensive changes including single-sourcing, conditional blocks, and cloud-specific content.
Linked Issues check ✅ Passed The PR comprehensively addresses the primary objective of documenting shadow links in cloud through single-sourcing markers, environment-specific conditionals, cloud-specific tips, and updated references DOC-1667.
Out of Scope Changes check ✅ Passed All changes are directly related to the PR's stated objective of single-sourcing and conditionalizing shadowing content for cloud. The branch change in local-antora-playbook.yml supports building documentation from the correct cloud source.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description follows the template with a clear description section, relevant JIRA ticket link, review deadline, page previews, and checked appropriate categories.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch DOC-1667-Document-Shadow-Link-in-Cloud

Comment @coderabbitai help to get the list of available commands and usage tips.

@micheleRP micheleRP force-pushed the DOC-1667-Document-Shadow-Link-in-Cloud branch from f533461 to 6b96f68 Compare November 25, 2025 19:05
@micheleRP micheleRP marked this pull request as ready for review November 25, 2025 20:03
@micheleRP micheleRP requested a review from a team as a code owner November 25, 2025 20:03
@treevon
Copy link
Contributor

treevon commented Dec 1, 2025

In Monitoring, Under metrics, it would be great to include the detail that the metrics are available via the /public_metrics endpoint
"Shadowing provides comprehensive metrics to track replication performance and health via the [/public_metrics] endpoint":

@treevon
Copy link
Contributor

treevon commented Dec 1, 2025

In monitoring the Alert thresholds section should be renamed to Alert conditions
and the text below should have more of an explanation"
The following conditions indicate problems with shadowing and should have alerts configured for them

@treevon
Copy link
Contributor

treevon commented Dec 1, 2025

On Monitoring - The Status command options: feels duplicative, it doesn't have anything different than the previous command. Could we remove it?

Copy link
Contributor

@treevon treevon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I like the new structure. I have some minor edits.

The starting offset only affects **new shadow topics**. After a shadow topic exists and has data, changing this setting has no effect on that topic's replication.
====

=== Generate a sample configuration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move this right under Set Up Shadowing? We should explain the configuration file before suggesting users create a shadow link using a configuration file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @treevon! Please see the new structure here

@paulohtb6
Copy link
Collaborator

paulohtb6 commented Dec 2, 2025

Reading this again with fresh eyes

== Disaster readiness checklist
Before a disaster occurs, ensure you have:
[%interactive]
* [ ] Access to shadow cluster administrative credentials
* [ ] Shadow link names and configuration details, and networking documented
* [ ] Application connection strings for the shadow cluster prepared
* [ ] Tested failover procedures in a non-production environment
I think those lines are out of place for overview. Let's remove it. (cant create a suggestion because its not on the changed lines)


=== Administrative access

Superuser access is required on both clusters through xref:get-started:rpk/index.adoc[`rpk`], the Admin API, or xref:console:index.adoc[Redpanda Console] to create and manage shadow links.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the admin requirement for cloud? do we have superusers there too? @simon0191

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


**Avoid name conflicts:** If you plan to consume data from the shadow cluster, do not use the same consumer group names as those used on the source cluster. While this won't break shadow linking, it can impact your RPO/RTO because conflicting group names may interfere with offset replication and consumer resumption during disaster recovery.

**Offset clamping:** When Redpanda replicates consumer group offsets from the source cluster, offsets are automatically "clamped" during the commit process on the shadow cluster. If a committed offset from the source cluster is above the high watermark (HWM) of the corresponding shadow partition, Redpanda clamps the offset to the shadow partition's HWM before committing it to the shadow cluster. This ensures offsets remain valid and prevents consumers from seeking beyond available data on the shadow cluster.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Offset clamping:** When Redpanda replicates consumer group offsets from the source cluster, offsets are automatically "clamped" during the commit process on the shadow cluster. If a committed offset from the source cluster is above the high watermark (HWM) of the corresponding shadow partition, Redpanda clamps the offset to the shadow partition's HWM before committing it to the shadow cluster. This ensures offsets remain valid and prevents consumers from seeking beyond available data on the shadow cluster.
**Offset clamping:** When Redpanda replicates consumer group offsets from the source cluster, offsets are automatically "clamped" during the commit process on the shadow cluster. If a committed offset from the source cluster is above the HWM of the corresponding shadow partition, Redpanda clamps the offset to the shadow partition's HWM before committing it to the shadow cluster. This ensures offsets remain valid and prevents consumers from seeking beyond available data on the shadow cluster.

with glossary maybe we can say HWM for high water mark

@micheleRP micheleRP requested a review from simon0191 December 2, 2025 02:21

* **Shadow link state**: Overall operational state (`ACTIVE`)
* **Individual topic states**: Current state of each replicated topic (`ACTIVE`, `FAULTED`, `FAILING_OVER`, `FAILED_OVER`)
* **Shadow link state**: Overall operational state (`ACTIVE`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simon0191 I updated on Monitor page and also on Failover page. Please confirm that the description for PAUSED is correct.

The architecture follows an active-passive pattern. The source cluster processes all production traffic while the shadow cluster remains in read-only mode, continuously receiving updates. If a disaster occurs, you can failover the shadow topics using the
ifndef::env-cloud[Admin API]
ifdef::env-cloud[Data Plane API]
or `rpk`, making them fully writable. At that point, you can redirect your applications to the shadow cluster, which becomes the new production cluster.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should warn the user about the potential for creating a split brain scenario if they don't ensure that all their clients are reconfigured to point to the shadow cluster.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a note in overview and in failover. (It's included as a step in the failover runbook.)

@micheleRP micheleRP force-pushed the DOC-1667-Document-Shadow-Link-in-Cloud branch from 3118ad6 to aea6e82 Compare December 2, 2025 19:59
@micheleRP
Copy link
Contributor Author

micheleRP commented Dec 2, 2025

Merging this now. Kat will then create a new PR to add Cloud API info and any other updates necessary for Cloud with rpk & UI. Single sourcing for this in cloud-docs repo is done in redpanda-data/cloud-docs#462. That one will merge Dec 12, to make Shadowing visible in Cloud docs. Preview docs showing the updates from this PR in Cloud docs are available here.

@micheleRP micheleRP merged commit 2a5e33a into main Dec 2, 2025
5 checks passed
@micheleRP micheleRP deleted the DOC-1667-Document-Shadow-Link-in-Cloud branch December 2, 2025 21:44
@coderabbitai coderabbitai bot mentioned this pull request Dec 2, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants