b2545f94f5
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>
35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
# 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:
|
|
name: ${NAME}-workforce-api-proxy-cache
|
|
namespace: ${NAMESPACE}
|
|
plugin: proxy-cache-advanced
|
|
config:
|
|
strategy: memory
|
|
request_method:
|
|
- GET
|
|
- HEAD
|
|
response_code:
|
|
- 200
|
|
content_type:
|
|
- application/json
|
|
cache_ttl: 60
|