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)
| Topic | Category | Description |
|---|---|---|
eventzr.wallet.created.v1 | wallet-lifecycle | New wallet created for a user or team |
eventzr.wallet.balance.updated.v1 | wallet-lifecycle | Wallet balance changed (credit, debit, or adjustment) |
eventzr.wallet.frozen.v1 | wallet-lifecycle | Wallet frozen by admin action |
eventzr.wallet.closed.v1 | wallet-lifecycle | Wallet permanently closed |
eventzr.wallet.transaction.created.v1 | transactions | New transaction initiated |
eventzr.wallet.transaction.completed.v1 | transactions | Transaction successfully completed |
eventzr.wallet.transaction.failed.v1 | transactions | Transaction failed to process |
eventzr.wallet.refund.completed.v1 | refunds | Refund successfully processed |
eventzr.wallet.refund.failed.v1 | refunds | Refund processing failed |
eventzr.wallet.escrow.created.v1 | escrow | New escrow created and funded |
eventzr.wallet.escrow.released.v1 | escrow | Escrow funds released to recipient |
eventzr.wallet.escrow.refunded.v1 | escrow | Escrow funds returned to payer |
eventzr.wallet.payment-method.added.v1 | payment-methods | Payment method registered |
eventzr.wallet.payment-method.removed.v1 | payment-methods | Payment method deleted |
eventzr.wallet.payment-method.verified.v1 | payment-methods | Payment method verification completed |
eventzr.wallet.split.completed.v1 | split-payments | Split payment successfully distributed |
eventzr.wallet.split.failed.v1 | split-payments | Split payment distribution failed |
Consumed Events (4)
| Topic | Source Service | Description |
|---|---|---|
eventzr.subscription.charge.posted.v1 | subscriptions-svc | Subscription charge to debit from wallet |
eventzr.ticketing.purchase.completed.v1 | ticketing-svc | Ticket purchase requiring wallet debit |
eventzr.booking.deposit.received.v1 | booking-svc | Booking deposit credited to wallet |
eventzr.user.kyc.verified.v1 | user-svc | KYC 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
| Property | Value |
|---|---|
| Broker | Amazon MSK Serverless (Kafka 3.6) |
| Protocol | kafka-secure (SASL IAM) |
| Partition Key | tenant_id |
| Outbox Pattern | KafkaOutbox table (at-least-once delivery) |
| DLQ | KafkaDlq table (failed after max retries) |