Event-Driven Architecture
Status: ACTIVE
Audit Date: 2026-03-16
Audit Basis: code-verified repository inspection
Resolving locale, route permissions, and workspace projection.
النطاق الحالي: ضيف
الفئة: 50_architecture | الإصدار: v1.0.0
المالك: DOCUMENT_CUSTODIAN | دورة المراجعة: 90 يومًا
جهة الاعتماد: GOVERNANCE_ADMIN
بوابة الوثائق للقراءة فقط. نقاط نهاية التعديل والتغيير معطلة.
منصة Kvary أُنشئت أصلًا باللغة الجورجية. وحيثما تتوفر نسخة جورجية، تبقى الجورجية هي اللغة المعتمدة لواجهة المنصة والوثائق والتفسير القانوني.
تُوفَّر الترجمات إلى اللغات الأخرى لسهولة الاستخدام فقط. وقد تنشأ بعض السجلات بلغات أخرى وتحمل لغة مصدر أو لغة قانونية خاصة بذلك المسار، ولكن حيثما تتوفر نسخة جورجية تكون الأولوية للنسخة الجورجية في صياغة المنصة وتفسيرها.
البيانات الوصفية غير مكتملة: Document ID, Version, Owner Role, Last Review Date, Next Review Date, Change Log
Status: ACTIVE
Audit Date: 2026-03-16
Audit Basis: code-verified repository inspection
Primary runtime configuration lives in:
Verified environment variables:
KES_ORCHESTRATOR_KAFKA_ENABLEDKES_ORCHESTRATOR_KAFKA_BROKERSKES_ORCHESTRATOR_KAFKA_TOPICKES_ORCHESTRATOR_KAFKA_CLIENT_IDKES_ORCHESTRATOR_KAFKA_GROUP_IDKES_ORCHESTRATOR_KAFKA_FROM_BEGINNINGKES_ORCHESTRATOR_KAFKA_DLQ_ENABLEDKES_ORCHESTRATOR_KAFKA_DLQ_TOPICKES_ORCHESTRATOR_KAFKA_MAX_RETRIESKES_ORCHESTRATOR_KAFKA_RETRY_BASE_MSKES_ORCHESTRATOR_KAFKA_RETRY_MAX_MSKES_OUTBOX_ENABLEDKES_OUTBOX_KAFKA_TOPICKES_OUTBOX_POLL_MSKES_OUTBOX_BATCH_SIZEKES_OUTBOX_MAX_ATTEMPTSKES_OUTBOX_MONITORING_ENABLEDKES_OUTBOX_MONITORING_HOSTKES_OUTBOX_MONITORING_PORTKES_DOMAIN_EVENTS_DLQ_ENABLEDKES_DOMAIN_EVENTS_DLQ_TOPIC| Topic | Where Defined | Producer | Consumer | Purpose | State |
| --- | --- | --- | --- | --- | --- |
| kes.orchestrator.events | services/svc-tenders/src/config.ts | services/api/src/routes/kes-orchestrator.ts | services/svc-tenders/src/kafka/kesEventConsumer.ts | proxy mutation envelope stream for KES actions | REAL |
| kes.orchestrator.events.dlq | same | KesEventConsumer invalid/final-failure DLQ publish | services/svc-tenders/src/kafka/kesDlqReplay.ts | operator replay/inspection for failed KES proxy events | REAL |
| kes.orchestrator.domain-events | services/svc-tenders/src/config.ts | services/svc-tenders/src/kafka/kesOutboxRelay.ts | services/svc-tenders/src/kafka/kesDomainEventConsumer.ts | durable domain-event stream from Postgres outbox | REAL |
| <KES_OUTBOX_KAFKA_TOPIC>.dlq default kes.orchestrator.domain-events.dlq | services/svc-tenders/src/kafka/kesDomainEventConsumer.ts | kesDomainEventConsumer | replay tooling is INFERRED only; explicit consumer not found | invalid domain-event payload DLQ | PARTIAL |
| milestone.approved | packages/financial-layer/chain/orchestration/kafka-dto.ts | demo/scripts | demo/scripts | multichain orchestration demo | MIXED |
| mint.requested | same | demo/scripts | demo/scripts | multichain mint workflow demo | MIXED |
| mint.confirmed | same | demo/scripts | demo/scripts | multichain mint confirmation demo | MIXED |
| anchor.requested | same | demo/scripts | demo/scripts | anchoring demo | MIXED |
| anchor.confirmed | same | demo/scripts | demo/scripts | anchoring demo | MIXED |
| orchestration.dlq | same | demo/scripts | demo/scripts | demo DLQ topic | MIXED |
services/api/src/routes/kes-orchestrator.tsKES_ORCHESTRATOR_MUTATION_RECORDEDservices/api/src/kafka/kesEventSchema.tsservices/svc-tenders/src/kafka/kesOutboxRelay.tskes_outbox_events.FOR UPDATE SKIP LOCKEDdispatched_at or increments attemptsKesEventConsumerservices/svc-tenders/src/kafka/kesEventConsumer.tskes.orchestrator.eventskafka_consumer_idempotencymain() handler logs consumption only.kesDomainEventConsumerservices/svc-tenders/src/kafka/kesDomainEventConsumer.tskes.orchestrator.domain-eventskes_domain_event_projection_eventskes_domain_event_projection_counterskes_domain_event_projection_aggregateseventIdservices/svc-tenders/migrations/0027_kes_outbox.sql
kes_outbox_eventsdedupe_keykes_orchestrator_eventsservices/svc-tenders/migrations/0028_tenders_events_outbox.sql
kes_outbox_eventsservices/svc-tenders/migrations/0031_legacy_tender_events_outbox.sql
kes_outbox_eventsservices/svc-tenders/migrations/0030_event_contract_versioning.sql
eventType and eventVersionkafka_consumer_idempotencyservices/svc-tenders/migrations/0026_kafka_consumer_idempotency.sqlservices/svc-tenders/src/kafka/idempotencyStore.tskesEventConsumer uses payload.requestId fallback eventId.kesDomainEventConsumer uses eventId.kes.orchestrator.events.dlq
KesEventConsumerservices/svc-tenders/src/kafka/kesDlqReplay.tsservices/svc-tenders/src/kafka/kesOutboxRelay.tsservices/svc-tenders/README.mdschemaVersion, eventType, eventVersion./api/v1/kes/orchestrator/* via services/api.svc-tenders /kes-orchestrator/*.svc-tenders persists KES state + writes kes_orchestrator_events.kes_outbox_events.kes.orchestrator.domain-events.services/api/src/routes/kes-orchestrator.tsservices/svc-tenders/src/server.tsservices/svc-tenders/src/repository.tsservices/svc-tenders/migrations/0027_kes_outbox.sqlservices/svc-tenders/src/kafka/kesOutboxRelay.tsservices/svc-tenders/src/kafka/kesDomainEventConsumer.tssvc-tenderskes.orchestrator.events consumer is currently mostly transport/logging oriented.