Servus Plonistas!
Quick update: the stack is finally working end-to-end - at least AFAICT.
I've been using it in an actual project and thanks to some of you and your bug reports, things have hardened quite a bit.
Here's what we have now:
- zodb-s3blobs
a generic storage wrapper for blobs in any S3 — not PostgreSQL related and works with FileStorage, ZEO and RelStorage as well (but acts as base later) - zodb-json-codec
library for fast pickle to/from JSON transcoding (Rust/PyO3) — see documentation - zodb-pgjsonb
full ZODB Storage with JSONB pickles for PostgreSQL and S3 blob tiering — see article ZODB out of the pickle jar - zodb-convert
new standalone generic converter, derived from RelStorage's zodbconvert - cookiecutter-zope-instance
now supports pgjsonb and zodb-s3blobs storage backends — see documentation - zodb-pgcatalog
PostgreSQL native ZCatalog replacement — see article I Cut Down a Forest and documentation - plone.pgthumbor
replaces all image scaling in Plone with Thumbor image transformation service: reads blobs directly from PostgreSQL and S3 while keeping Plone view-permission security. Smart auto-focal point and automatic webp conversion. See article Sleeping without a Pillow and documentation - plone-registryfromenviron
populate Plone registry settings from environment variables — essential for container/K8s deployments - cdk8s-plone
cdk8s constructs for deploying the whole stack on Kubernetes — Plone, PostgreSQL, Thumbor, S3, all wired together
Another thing I am currently working on is cloud-vinyl, a Kubernetes operator for managing Vinyl Cache clusters (the FOSS HTTP cache formerly known as Varnish Cache - still exists as commercial product).
Feedback welcome!