SaFi Bank Space : Customer/Onboarding Kafka message schemas

list of Kafka schemas: https://github.com/SafiBank/SaFiMono/tree/main/common/schema/schemas/customers

note: mentioned producers/consumers belong to Customers' domain only

Snapshots

CustomerDeduplicationSnapshot

topic: customers.customer-deduplication.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerDeduplicationSnapshotV1.avsc

trigger: deduplication engine computation finished (after customer application is submitted)

producer: customer-manager

CustomerLocation

topic: customers.customer-location.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerLocationSnapshotV1.avsc

trigger: customer’s GPS location submitted

producer: customer-manager

CustomerSnapshot

topic: customers.customer.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerSnapshotV1.avsc

trigger: customer metadata changed, customer profile changed, residential address changed, preferences changed, additional information (KYC survey) changed

producer: customer-manager

CustomerSnapshot V2

topic: customers.customer.snapshot.v2

schema: CustomerSnapshotV2.avsc

trigger: customer metadata changed, customer profile changed, residential address changed, preferences changed, additional information (KYC survey) changed

producer: customer-manager

DeviceFingerprintSnapshot

topic: customers.device-fingerprint.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/DeviceFingerprintSnapshotV1.avsc

trigger: customer’s device fingerprint is submitted

producer: customer-manager

FacialVerificationSnapshot

topic: customers.facial-verification.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/FacialVerificationSnapshotV1.avsc

trigger: customer’s liveness result is submitted, customer’s face comparison against ID card finished, customer’s step-up authorization using face verification finished

producer: customer-manager

IdCardSnapshot

topic: customers.id-card.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/IdCardSnapshotV1.avsc

trigger: customer’s ID card scans submitted, customer’s ID card forgery finished

producer: customer-manager

OspWorkflowSnapshot

topic: customers.osp-workflow.snapshot.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/OspWorkflowSnapshotV1.avsc

trigger: AdvanceAI OSP workflow processing finished

producer: customer-manager

Events

CustomerOnboarded

topic: customers.customer-onboarded.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerOnboardedEventV1.avsc

trigger: customer’s onboarding finished

producer: customer-manager

CustomerStatusUpdated

topic: customers.customer-status_updated.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerStatusUpdatedEventV1.avsc

trigger: customer status updated

producer: customer-manager

CustomerStatusUpdated V2

topic: customers.customer-status_updated.event.v2

schema: CustomerStatusUpdatedEventV2.avsc

trigger: customer status updated

producer: customer-manager

CustomerAddressUpdated

topic: customers.customer-address-updated.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerAddressUpdatedEventV1.avsc

trigger: customer address updated

producer: customer-manager

CustomerProfileUpdated

topic: customers.customer-profile-updated.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CustomerProfileUpdatedEventV1.avsc

trigger: customer profile updated (first name, middle name, last name, gender, date of birth, place of birth, nationality)

producer: customer-manager

PushNotificationAplicationResolved

topic: customers.push-notification-application-resolved.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/PushNotificationApplicationResolvedEventV1.avsc

trigger: AdvanceAI OSP Workflow response with ACCEPT result, AdvanceAI VKYC response with ACCEPT result

producer: customer-manager

consumer: SaFi app

PushNotificationVideoKYCAgentCallRequested

topic: customers.push-notification-vkyc-agent-call-requested.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/PushNotificationVideoKYCAgentCallRequestedEventV1.avsc

trigger: VKYC agent initiated the call

producer: customer-manager

consumer: SaFi app

VideoKYCAgentCallRequested

topic: customers.vkyc-agent-call-requested.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/VideoKYCAgentCallRequestedEventV1.avsc

trigger: AdvanceAI scheduled call initiated by VKYC agent

producer: advanceai-gateway

consumer: customer-manager

VideoKYCAgentCallExpired

topic: customers.vkyc-call-expired.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/VideoKYCCallExpiredEventV1.avsc

trigger: AdvanceAI scheduled activity (every PH midnight)

producer: advanceai-gateway

consumer: no consumer at all

VideoKYCAgentCallFinished

topic: customers.vkyc-call-finished.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/VideoKYCCallFinishedEventV1.avsc

trigger: AdvanceAI (un)scheduled call finished by VKYC agent

producer: advanceai-gateway

consumer: customer-manager

WorkflowCallbackReceived

topic: customers.workflow-callback-received.event.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/WorkflowCallbackReceivedEventV1.avsc

trigger: AdvanceAI OSP workflow callback (update) received

producer: advanceai-gateway

consumer: customer-manager

Commands

ComapreOnboardingLivenessAgainstIdCard

topic: customers.compare-onboarding-liveness-against-idcard.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/CompareOnboardingLivenessAgainstIdCardCommandV1.avsc

trigger: customer’s liveness result is submitted

producer: customer-manager

consumer: customer-manager

FetchAndStoreCallResult

topic: customers.fetch-and-store-call-result.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/FetchAndStoreCallResultCommandV1.avsc

trigger: found unfinished AdvanceAI VKYC calls

producer: customer-manager

consumer: customer-manager

FetchAndStoreCustomerRiskWorkflowStatus

topic: customers.fetch-and-store-customer-risk-workflow-status.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/FetchAndStoreCustomerRiskWorkflowStatusCommandV1.avsc

trigger: found unfinished AdvanceAI OSP workflows

producer: customer-manager

consumer: customer-manager

RerunCustomerRiskWorkflow

topic: customers.rerun-customer-risk-workflow.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/RerunCustomerRiskWorkflowCommandV1.avsc

trigger: found unfinished AdvanceAI OSP workflows

producer: customer-manager

consumer: customer-manager

InitiateOSPReconciliation

topic: customers.initiate-osp-reconciliation.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/InitiateOSPReconciliationCommandV1.avsc

trigger: scheduled activity (every 30 minutes)

producer: customer-manager

consumer: customer-manager

InitiateVKYCReconciliation

topic: customers.initiate-vkyc-reconciliation.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/InitiateVKYCReconciliationCommandV1.avsc

trigger: scheduled activity (every 30 minutes)

producer: customer-manager

consumer: customer-manager

InitiateUnfinishedCustomerOnboardings

topic: customers.invalidate-unfinished-onboardings.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/InvalidateUnfinishedCustomerOnboardingCommandV1.avsc

trigger: scheduled activity (every UTC midnight)

producer: customer-manager

consumer: customer-manager

InvalidateUnfinishedOnboardings

topic: customers.invalidate-unfinished-customer-onboarding.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/InvalidateUnfinishedOnboardingsCommandV1.avsc

trigger: found customers in prospect status

producer: customer-manager

consumer: customer-manager

OnboardCustomer

topic: customers.onboard-customer.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/OnboardCustomerCommandV1.avsc

trigger: AdvanceAI OSP Workflow response with ACCEPT result, AdvanceAI VKYC response with ACCEPT result

producer: customer-manager

consumer: customer-manager

SendOtp

topic: customers.send-otp.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/SendOtpCommandV1.avsc

trigger: customer requests sending otp or resending top

producer: customer-manager

consumer: customer-manager

PerformIdCardForgeryDetection

topic: customers.perform-idcard-forgery-detection.command.v1

schema: https://github.com/SafiBank/SaFiMono/blob/main/common/schema/schemas/customers/PerformIdCardForgeryDetectionCommandV1.avsc

trigger: customer’s ID card scans submitted

producer: customer-manager

consumer: customer-manager

ApplyDataChangesAfterCoolOffPeriod

topic: customers.apply-data-changes-after-cool-off-period.command.v1

schema: ApplyDataChangesAfterCoolOffPeriodCommandV1.avsc

trigger: scheduled activity (every 30 minutes)

producer: customer-manager

consumer: customer-manager

ApplyCustomerPhoneNumberChange

topic: customers.apply-customer-phone-number-change.command.v1

schema: ApplyCustomerPhoneNumberChangeCommandV1.avsc

trigger: Found phone number change requests in PENDING state after cooling off period

producer: customer-manager

consumer: customer-manager

ApplyCustomerEmailChange

topic: customers.apply-customer-email-change.command.v1

schema: ApplyCustomerEmailChangeCommandV1.avsc

trigger: Found email change requests in PENDING state after cooling off period

producer: customer-manager

consumer: customer-manager