Skip to content

FEATURE: add quick content releases - #61

Open
t-heuser wants to merge 10 commits into
mainfrom
feature/enable-fast-content-releases
Open

FEATURE: add quick content releases#61
t-heuser wants to merge 10 commits into
mainfrom
feature/enable-fast-content-releases

Conversation

@t-heuser

@t-heuser t-heuser commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Quick content releases: publish single documents without re-rendering the whole site

Rendering is 92% of a content release — measured on an 18 000-document installation, 2 183 s out of 2 384 s — and
almost all of it produces a release that is identical to the previous one everywhere except the page somebody just
fixed.

This adds a second pipeline for that case. do_quick_content_release copies the release which is currently live
(server-side COPY, so nothing travels over the wire), enumerates only the documents you name, and lets the ordinary
orchestrator render those into the copy. From the enumeration onwards nothing changes: validation, transfer and switch
behave as they always do, and what goes live is a complete, ordinary content release rather than a patch. On the same
installation a quick release renders in 10 s instead of 36 minutes.

It comes with the pause switch it needs to be useful: automatic releases can be held back from the Content Store
module while a fix is prepared, editors see a warning in the content module telling them their changes are not going
live yet, and Publish All keeps working throughout. Pause, resume and quick publish sit behind a new
Flowpack.DecoupledContentStore:ReleaseControl privilege target, separate from the module privilege.

Two things installations with custom release keys need to know: which keys a quick release carries over is
configuration (copyOnQuickRelease, defaulting to false), and validators can scope themselves to the changed URLs
through QuickPublish\ContentReleaseScope — which the package's own contentReleaseValidation:validate had to do, since a quick release deliberately enumerates a handful of documents and would otherwise trip its 70% threshold every time.

Nothing changes for an existing installation which does not add the pipeline: the flag defaults to false, the
pause defaults to off, and Redis 6.2 is required only by the copy command itself, which checks the server version
before it does anything. No upgrade guide.

Full documentation in the README under Quick Content Releases; the design, the measurements and the trade-offs are in Documentation/Concepts/QuickContentReleases.md.

@t-heuser t-heuser self-assigned this Aug 17, 2026
@t-heuser
t-heuser force-pushed the feature/enable-fast-content-releases branch 3 times, most recently from c559160 to 6011cda Compare August 17, 2026 12:28
@t-heuser
t-heuser force-pushed the feature/enable-fast-content-releases branch from 6011cda to 553e782 Compare August 17, 2026 12:30
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.

1 participant