diff --git a/kafka-topology/classic-models.yaml b/kafka-topology/classic-models.yaml index 3d4beac..db494f6 100644 --- a/kafka-topology/classic-models.yaml +++ b/kafka-topology/classic-models.yaml @@ -63,6 +63,25 @@ spec: retention.ms: "604800000" cleanup.policy: delete min.insync.replicas: "1" +--- +# A supply request and its own answer, on one topic: reorder.requested and its +# eventual reorder.confirmed/reorder.rejected share a subject — the reorder id +# — so ordering between "asked" and "answered" holds the way it does for a +# product's own facts on classic-models.catalog. +apiVersion: kafka.strimzi.io/v1 +kind: KafkaTopic +metadata: + name: classic-models.procurement + namespace: kafka + labels: + strimzi.io/cluster: kafka +spec: + partitions: 3 + replicas: 1 + config: + retention.ms: "604800000" + cleanup.policy: delete + min.insync.replicas: "1" # --- accounts --------------------------------------------------------------- # @@ -92,8 +111,12 @@ spec: - Write - Describe --- -# The supply agent. Reads the catalog topic only — an agent whose job is stock -# has no business reading who paid what. +# The supply agent. Reads the catalog topic — its job is stock, it has no +# business reading who paid what. It also both writes AND reads its own +# procurement topic: it raises a reorder request and answers its own request +# a moment later (this is one service acting in two capacities, not two +# services, per the 2026-08-31 decision that réapprovisionnement stays one +# service rather than splitting into a separate procurement identity). apiVersion: kafka.strimzi.io/v1 kind: KafkaUser metadata: @@ -114,6 +137,14 @@ spec: operations: - Read - Describe + - resource: + type: topic + name: classic-models.procurement + patternType: literal + operations: + - Read + - Write + - Describe - resource: type: group name: supply-