Kafka Events

21 Kafka event topics published and consumed by the Wallet Service using CloudEvents 1.0.

Event Format

All events follow the CloudEvents 1.0 specification, partitioned by tenant_id for multi-tenant isolation. Topic naming: eventzr.wallet.<entity>.<action>.v1

Published Events (17)

TopicCategoryDescription
eventzr.wallet.created.v1wallet-lifecycleNew wallet created for a user or team
eventzr.wallet.balance.updated.v1wallet-lifecycleWallet balance changed (credit, debit, or adjustment)
eventzr.wallet.frozen.v1wallet-lifecycleWallet frozen by admin action
eventzr.wallet.closed.v1wallet-lifecycleWallet permanently closed
eventzr.wallet.transaction.created.v1transactionsNew transaction initiated
eventzr.wallet.transaction.completed.v1transactionsTransaction successfully completed
eventzr.wallet.transaction.failed.v1transactionsTransaction failed to process
eventzr.wallet.refund.completed.v1refundsRefund successfully processed
eventzr.wallet.refund.failed.v1refundsRefund processing failed
eventzr.wallet.escrow.created.v1escrowNew escrow created and funded
eventzr.wallet.escrow.released.v1escrowEscrow funds released to recipient
eventzr.wallet.escrow.refunded.v1escrowEscrow funds returned to payer
eventzr.wallet.payment-method.added.v1payment-methodsPayment method registered
eventzr.wallet.payment-method.removed.v1payment-methodsPayment method deleted
eventzr.wallet.payment-method.verified.v1payment-methodsPayment method verification completed
eventzr.wallet.split.completed.v1split-paymentsSplit payment successfully distributed
eventzr.wallet.split.failed.v1split-paymentsSplit payment distribution failed

Consumed Events (4)

TopicSource ServiceDescription
eventzr.subscription.charge.posted.v1subscriptions-svcSubscription charge to debit from wallet
eventzr.ticketing.purchase.completed.v1ticketing-svcTicket purchase requiring wallet debit
eventzr.booking.deposit.received.v1booking-svcBooking deposit credited to wallet
eventzr.user.kyc.verified.v1user-svcKYC verification enabling higher wallet limits

CloudEvents Envelope Example

eventzr.wallet.transaction.completed.v1json
{
  "specversion": "1.0",
  "type": "eventzr.wallet.transaction.completed.v1",
  "source": "wallet-svc",
  "id": "evt_01H5ABCDEFGH",
  "time": "2026-02-21T10:00:00.000Z",
  "datacontenttype": "application/json",
  "data": {
    "transactionId": "txn_01H5ABCDEFGH",
    "walletId": "wal_01H5ABCDEFGH",
    "tenantId": "00000000-0000-4000-a000-000000000001",
    "type": "DEBIT",
    "amount": "50.00",
    "currency": "USD",
    "description": "Ticket purchase",
    "status": "COMPLETED",
    "balanceAfter": "450.00"
  }
}

Infrastructure

PropertyValue
BrokerAmazon MSK Serverless (Kafka 3.6)
Protocolkafka-secure (SASL IAM)
Partition Keytenant_id
Outbox PatternKafkaOutbox table (at-least-once delivery)
DLQKafkaDlq table (failed after max retries)