KES Dependency Edge Map
Historical Status Note
This dependency map records the pre-extraction and first-cut hardening state.
Current truth:
- live KES HTTP/runtime callers now go through and
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
This dependency map records the pre-extraction and first-cut hardening state.
Current truth:
svc-tenders KES HTTP host is retiredservices/svc-tenders/src/kes/* compatibility layer is removedReferences below to deleted svc-tenders route/support or compatibility files are historical unless a line explicitly describes shared backbone code in services/svc-tenders/src/kafka.
| Dependency edge | Current source | Current target | Dependency type | Verdict | Notes |
| --- | --- | --- | --- | --- | --- |
| KES route module -> mixed repository slice | registerKesRoutes.ts | repository.ts | persistence / domain port | should move into KES later | Biggest code-boundary blocker; KES route is isolated but repository ownership is not |
| KES route support -> shell auth/parsers | kesRouteSupport.ts | server.ts | shared support / parser / auth | must remain shared after extraction | requireServiceAuth, parse helpers, and query normalization are shell-level today |
| Payment request -> KYC boundary helper | registerKesRoutes.ts | server.ts | ingress / KYC boundary | can be wrapped later | KES needs it, but it is still shell-owned ingress policy |
| Payment request/approve/settle -> signature gate | registerKesRoutes.ts | server.ts | ingress / signature verification | can be wrapped later | Extraction will need a stable shared contract for this |
| KES route module -> root validation file | registerKesRoutes.ts | validation.ts | validation / schema | should move into KES later | Cleanest near-term hardening target |
| Live gateway -> KES runtime seam | kes-orchestrator.ts | KES_ORCHESTRATOR_SERVICE_URL ?? TENDERS_SERVICE_URL | API / service-target seam | should become API/service contract | Gateway shape is already appropriate for a future extracted runtime |
| Gateway mutation proxy -> Kafka envelope producer | kes-orchestrator.ts | kesEventProducer.ts | kafka / operational eventing | should stay temporary for now | Useful operational stream, but not the canonical durable event boundary |
| KES events consumer -> idempotency store | kesEventConsumer.ts | idempotencyStore.ts | kafka consumer infra | must remain shared after extraction | This behaves like event-backbone infrastructure, not KES-only product logic |
| KES domain-event consumer -> projection tables | kesDomainEventConsumer.ts | KES projection tables from migration 0029 | projection / read-model | unresolved | Feels KES-centric, but still tied to shared outbox/event discipline |
| KES outbox relay -> kes_outbox_events | kesOutboxRelay.ts | outbox tables from migration 0027 | shared event backbone | unresolved | Could stay shared longer even if KES route/runtime moves |
| Web portal API -> gateway KES routes | apps/web/src/portal/api.ts | /api/v1/kes/orchestrator/* | web client / backend contract | should become API/service contract | Real backend consumer |
| KES control-plane view -> portal API | KesControlPlaneView.tsx | apps/web/src/portal/api.ts | web client | can remain shared after extraction | No special blocker here if gateway contract stays stable |
| KES workspace/editor page -> localStorage | page.tsx | browser storage | UI-local state | should stay temporary for now | This is not part of the backend extraction core |
Must remain shared at first:
/auth/me principal resolutionShould become KES-owned later:
Unresolved: