Stop caching reads on a read-write API

The proxy cache held every GET on the whole service for 60 seconds, and these
APIs accept writes. Kong's proxy cache has no invalidation on write: a POST
that changes a product passes through the same gateway, and the gateway goes on
serving the value it captured before it, for up to a minute, with nothing in the
response saying so.

It produced a real wrong answer. An agent woken by a stock event read the figure
from before that event and reported, in one sentence, "68 in stock, above the
threshold" and "it crossed the threshold, from 68".

The manifest is kept, unreferenced, carrying the reason — so reinstating it is a
decision rather than a rediscovery.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Stéphane Tailland
2026-08-31 08:26:27 +02:00
parent a81bf74b28
commit b2545f94f5
3 changed files with 18 additions and 19 deletions
+18
View File
@@ -1,3 +1,21 @@
# NOT APPLIED — deliberately unreferenced by kustomization.yaml.
#
# This cached every GET on the whole service for 60 seconds, and these are
# read-write APIs. Kong's proxy cache has **no invalidation on write**: a POST
# that changes a product passes through the same gateway, and the gateway goes
# on serving the value it captured before, for up to a minute, with nothing in
# the response saying so.
#
# It produced a real wrong answer. An agent woken by a stock event read the
# figure from before that event and reported, in one sentence, "68 in stock,
# above the threshold" and "it crossed the threshold, from 68".
#
# Kept here rather than deleted so that reinstating it is a decision, not a
# rediscovery. If it comes back, it belongs on reference data that is not
# written through this gateway, bound per route — or with `cache_control: true`
# so the API declares what is cacheable, which is the owner's call and not the
# gateway's.
#
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata: