Cache-Invalidierung bei dynamischen Produktgruppen funktioniert nicht (Redis + Varnish)

Hallo zusammen,

wir kämpfen aktuell mit einem Problem, das sicher auch andere betrifft:

:wrench: Setup:

  • Shopware 6.6.10.2
  • Caching über Redis + Varnish
  • HTTP-Cache aktiv (SHOPWARE_HTTP_CACHE_ENABLED = 1)
  • Varnish korrekt eingebunden (SHOPWARE_HTTP_CACHE_VARNISH_ENABLED = 1)
  • Dynamische Produktgruppen werden in Kategorien eingebunden (Standardfunktion)

:firecracker: Problem:

Wird eine dynamische Produktregel verändert, werden:

  • Im Backend die betroffenen Produkte korrekt neu gezählt
  • Im Frontend bleiben alte Produktlisten im Cache sichtbar

Cache-Invalidierung geschieht nicht automatisch, obwohl:

  • Redis Keys (u. a. product_stream_result_*, cms-page-*, category_listing_*) manuell gelöscht werden können
  • Varnish per X-Cache-Tags und X-Key korrekt mitläuft
  • EntityWrittenContainerEvent für product_stream abgefangen wird

:repeat_button: Behelf:

Ein manueller redis-cli FLUSHALL hilft – aber das ist natürlich keine Option im Livebetrieb.

:hammer_and_wrench: Bisherige Maßnahmen:

  • Eigenes Plugin mit Subscriber:
    • Invalidierung der relevanten Redis-Keys (inkl. CMS-Resolver)
    • Purge von Varnish-Caches über X-Key
  • Logging zeigt: Events werden korrekt verarbeitet
  • Problem bleibt bestehen – selbst wenn alle bekannten Keys gelöscht sind

:red_question_mark: Fragen an die Community:

  1. Gibt es Shopware-konforme Wege, den Frontend-Cache bei Änderungen an dynamischen Produktgruppen vollständig zu invalidieren?
  2. Welche zusätzlichen Mechanismen müssen evtl. berücksichtigt werden (z. B. SalesChannelContext, PageResolver, Feature Flags)?
  3. Gibt es offizielle Empfehlungen seitens Shopware zur Kombination Redis + Varnish + dynamische Produktgruppen?

Vielen Dank für jeden Hinweis!
Wir sind für jeden echten Lösungsansatz dankbar :folded_hands:

Schau doch mal im Shopware Slack vorbei und stelle dort die Frage. Dort ist etwas mehr technische Expertise vorhanden, als hier im Forum.