Loading module
Resolving locale, route permissions, and workspace projection.
Resolving locale, route permissions, and workspace projection.
Current scope: Guest
Category: 10_normative | Version: v1.0.0
Owner: DOCUMENT_CUSTODIAN | Review cycle: 90 days
Approval authority: GOVERNANCE_ADMIN
Documentation portal is read-only. Editing and mutation endpoints are disabled.
Kvary platform is originally created in Georgian. Where a Georgian version exists, Georgian is authoritative for platform UI, documentation, and legal interpretation.
Translations into other languages are provided for convenience. Some records may originate in other languages and carry their own source or legal locale for a specific flow, but where a Georgian version is available, the Georgian version prevails for platform-level wording and interpretation.
Metadata incomplete: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
svc-tenders runs an optional Kafka consumer that subscribes to
payments.finality events emitted by svc-payments and records
idempotent rows in auction_buy_now_fills when a Buy Now sale settles.
The consumer is disabled by default. It is wired into svc-tenders startup but performs zero Kafka work unless explicitly enabled.
| Variable | Default | Notes |
| --- | --- | --- |
| TENDERS_PAYMENT_FINALITY_CONSUMER_ENABLED | false | Master switch. When not true, no Kafka client is constructed and no broker connection is attempted. |
| TENDERS_PAYMENT_FINALITY_CONSUMER_STRICT | false | When true and the consumer fails to start (e.g. brokers empty or connect() rejects), startup crashes. When false, the failure is logged and svc-tenders keeps running. |
| TENDERS_PAYMENT_FINALITY_KAFKA_BROKERS | "" (empty) | Comma-separated. Required when enabled. |
| TENDERS_PAYMENT_FINALITY_KAFKA_TOPIC | payments.finality | |
| TENDERS_PAYMENT_FINALITY_KAFKA_GROUP_ID | kvary-tenders-payment-finality | |
| TENDERS_PAYMENT_FINALITY_KAFKA_CLIENT_ID | kvary-tenders-payment-finality | |
| TENDERS_PAYMENT_FINALITY_KAFKA_FROM_BEGINNING | false | |
Both already shipped in earlier phases — re-confirm they are applied on the target database before enabling:
0059_auction_buy_now_fills.sql (Phase 3A)0060_auctions_approved_quantity.sql (Phase 3A)svc-payments is on Phase 3B-ii or later (so finality
events carry metadata.kind="BUY_NOW").TENDERS_PAYMENT_FINALITY_CONSUMER_ENABLED=true
TENDERS_PAYMENT_FINALITY_KAFKA_BROKERS=broker-1:9092,broker-2:9092
payment_finality_consumer_started topic=….# expect: 23/23 tests pass, no broker required
npm --prefix services/svc-tenders run test:auction:payment-finality-consumer
# spot-check on the live process
grep payment_finality_consumer /var/log/svc-tenders/app.log
TENDERS_PAYMENT_FINALITY_CONSUMER_ENABLED=false
# restart svc-tenders
The consumer will log payment_finality_consumer_disabled and skip
all Kafka work. No data is rolled back; idempotency keys remain in
auction_buy_now_fills.
auctions.sold_quantity or any
remaining-quantity projection (Phase 3C).canonicalContext (Phase 3C).