RabbitMQ Communication
RabbitMQ is the primary inter-service communication mechanism for FaceKom . All communication between vuer_css and vuer_oss flows through it. There is no direct HTTP or DB access from vuer_css to vuer_oss.
Messaging Patterns
The system uses four patterns from @techteamer/mq:
Pattern Direction Semantics Count RPCServer / RPCClient Request-response Synchronous-style calls with timeout 40+ endpoints QueueServer / QueueClient Fire-and-forget Async message delivery 17+ pairs Publisher / Subscriber Broadcast (fanout) One-to-many notifications 3 channels
graph LR
subgraph vuer_css
RPC_C[RPC Clients ~30]
QC[Queue Clients]
QS_CSS[Queue Servers]
RPC_S_CSS[RPC Servers 4]
end
subgraph RabbitMQ
RPC_Q[RPC Queues]
FaF_Q[Fire-and-Forget Queues]
PubSub[Fanout Exchanges]
end
subgraph vuer_oss
RPC_S[RPC Servers 40+]
QS[Queue Servers 17+]
QC_OSS[Queue Clients]
Pub[Publishers 3]
Sub[Subscribers]
end
RPC_C -->|request| RPC_Q -->|dispatch| RPC_S
QC -->|fire| FaF_Q -->|deliver| QS
QC_OSS -->|fire| FaF_Q -->|deliver| QS_CSS
Pub -->|broadcast| PubSub -->|fanout| Sub
RPC_S_CSS -.->|reverse calls<br/>from oss| RPC_Q
RPC Servers (vuer_oss) — 40+ Endpoints
These are the “API” that vuer_oss exposes to vuer_css via RabbitMQ.
Identity & Auth
Server Purpose JwtAuthValidates JWT invite tokens via hook system JwtKioskAuthValidates encrypted JWT for kiosk devices (decrypts with facekomPont key) CreateCustomerCreates or retrieves customers by token, assigns fakeSessionId GetCustomerRetrieves customer data ClientGateClient gate operations
Self-Service V2 (16 registered actions)
Action Purpose selfService:v2:registerCreates encrypted JWT for customer selfService:v2:startStarts self-service session selfService:v2:abortAborts session selfService:v2:getCurrentStepGet current workflow step selfService:v2:getRemainingSecondsGet session time remaining selfService:v2:skipSkip current step selfService:v2:setConsentRecord consent selfService:v2:setInputSubmit form input selfService:v2:requestSmsTokenRequest SMS verification token selfService:v2:photo:candidateSubmit photo candidate selfService:v2:photo:finalizeFinalize photo capture selfService:v2:video:startStart video recording selfService:v2:video:stopStop video recording selfService:v2:hologram:screenshotHologram screenshot selfService:v2:hologram-v2:photoV2 hologram photo selfService:v2:stream:startStart WebRTC stream selfService:v2:stream:answerWebRTC answer selfService:v2:stream:candidateICE candidate selfService:v2:liveness-check-v2:photoLiveness check photo selfService:v2:clientGateDemo:loginClient gate demo login
Video Chat & Transport
Server Purpose VideoChatOssJoin/leave videochat events TransportOssTransport layer for WebRTC signaling PresentationDocument presentation in calls RecognitionFace recognition operations
Documents & Flows
Server Purpose FlowDocumentsFlow document management DocumentUploadDocument upload DocumentDeleteDocument deletion CustomerDocumentsCustomer document retrieval
Admin & System
Server Purpose SystemChecksystemCheck:getJanus actionDeviceChangeDevice change events DeviceCompatibilityCheckRPCServerDevice compatibility WaitingRoomWaiting room operations AppointmentAppointment scheduling CallbackRequestCallback request handling OpenHoursBusiness hours OpenHoursCalendarsCalendar management PartnerServicePartner service integration PortalRPCServerPortal data PortalDataRPCServerPortal data queries MediaContentRPCServerMedia content CustomContentRPCCServerCustom content IdentificationRouterRPCServerIdentification routing KioskAliveCheckRPCServerKiosk health check
Background & Processing
Server Purpose SelfServiceActionsSelf-service action handlers SelfServiceUploadSelf-service uploads SelfServiceRoomExportSelf-service room export RoomExportRoom data export (300s timeout, prefetch 1) ArchiveArchival operations BackgroundBackground processing
Reports & Admin
Server Purpose ReportsGeneral reports XlsxReportRPCServerExcel report generation XmlReportRPCServerXML report generation CronManagerRPCServerCron management FlowAutoClearRPCServerFlow auto-clear IntegrationLogRPCServerIntegration log (with rate limiting) PingHealth check
RPC Clients (vuer_css → vuer_oss) — ~30
Client Mirrors Server JwtAuthJwtAuth JwtKioskAuthJwtKioskAuth CreateCustomerCreateCustomer GetCustomerGetCustomer ClientGateClientGate SelfServiceV2Self-Service V2 SelfServiceActionsSelfServiceActions SelfServiceUploadSelfServiceUpload SelfServiceRoomExportSelfServiceRoomExport DocumentUploadDocumentUpload DocumentDeleteDocumentDelete FlowDocumentsFlowDocuments CustomerDocumentsCustomerDocuments AppointmentAppointment RequestCallbackCallbackRequest WaitingRoomWaitingRoom OpenHoursOpenHours OpenHoursCalendarsOpenHoursCalendars PartnerServicePartnerService PortalDataRPCClientPortalDataRPCServer PresentationPresentation SystemCheckSystemCheck DeviceChangeDeviceChange DeviceCompatibilityCheckRPCClientDeviceCompatibilityCheck IdentificationRouterRPCClientIdentificationRouter KioskAliveCheckKioskAliveCheck MediaContentMediaContentRPCServer CustomContentRPCCLientCustomContentRPCCServer TransportOssTransportOss VideoChatOssVideoChatOss RoomExportRoomExport
RPC Servers (vuer_css) — Receiving FROM vuer_oss
Server Purpose PingHealth check from OSS SystemOssSystem commands from OSS TransportCssTransport commands to CSS DocumentScanRPCServerDocument scan requests
Queue Servers (Fire-and-Forget)
vuer_oss Queue Servers (receive from vuer_css)
Queue Server Purpose CustomerHistoryLogs customer history events CustomerCustomer updates FeedbackFeedback submissions VideoChatOssVideochat join/leave actions TransportOssTransport events WebRTCLogWebRTC diagnostic logs ClientErrorLogClient-side error logging CssClientPingResultPing results from CSS SelfServiceEventsSelf-service event tracking SelfServiceV2Self-service V2 queue events (prefetch 10) KioskDocumentScanQueueServerKiosk doc scan (60s timeout, no retry) Convert / ConvertStateMedia conversion jobs Storage / StorageStateStorage operations RoomCron / SelfServiceCronCron triggers JobStatusChangeJob status updates
vuer_css Queue Servers (receive from vuer_oss)
Queue Server Purpose ServiceBusGeneral service bus messages TransportCssTransport events to CSS VideoChatCssVideochat events to CSS WaitingRoomWaiting room updates SelfServiceCssSelf-service notifications SelfServiceV2CssSelf-service V2 notifications
Pub/Sub (Broadcast)
Publishers (vuer_oss)
Channel Purpose CustomerKeyCustomer encryption key changes SettingsChangeSettings updates BackgroundProcessBackground process notifications
Subscribers in vuer_oss mirror these publishers for internal broadcast.
eSign RPC (esign_css ← > esign_oss)
Queue Direction Purpose esign:rpc-appcss → oss App registration/management esign:rpc-customercss → oss Customer auth, login, 2FA esign:rpc-timestampcss → oss Timestamp operations esign:rpc-documentcss → oss Document CRUD esign:rpc-contractcss → oss Contract management esign:rpc-offercss → oss Offer operations esign:rpc-signaturecss → oss Signature creation/verification esign:rpc-signature-checkcss → oss Signature check esign:css-pingoss → css Health check esign:cron-pingoss → css Cron health check esign:rpc-system-ossoss → css System config push
Other Service RPC
Queue Direction Purpose kkszb-rpcvuer_oss → nyilvantarto-scraper Government registry queries pdf-validateesign_oss → pdfservice PDF signature validation pdf-prepareSignedDocumentesign_oss → pdfservice Prepare PDF for signing pdf-insertSignatureesign_oss → pdfservice Insert CMS signature pdf-checkActiveComponentsesign_oss → pdfservice Check for JS/forms in PDF
RabbitMQ Configuration
Property Value Protocol AMQPS (TLS on port 5671) Auth Client certificates Management Port 15672 Version 4.1.4 Connection pool Used by esign_oss for multiple queue managers