Kafka
Architecture Decision
Asynchronous Messaging (Kafka Strimzi)
For event-driven workflows and decoupled communication within the Kubernetes cluster, the platform uses Apache Kafka managed by the Strimzi operator.
- Role: Provides a robust, scalable message bus for internal asynchronous communication.
- Key Features:
- Service Decoupling: Allows services to communicate without direct dependencies, enhancing overall system fault tolerance.
- Strimzi Operator: Simplifies Kafka management using Kubernetes-native Custom Resources (CRDs) for brokers, topics, and users.
- Reliability: Ensures high availability and persistence of data streams across internal service boundaries.

Integration Principles
- Topic naming follows domain-oriented conventions such as
NotificationEvents.CREATED,RegistrationEvents.CREATED, andpayment.market_order.v1. - Consumer groups are service-specific, for example
core-payment-service,user-service,notification-service, andmedia-service. - Kafka is used for asynchronous event delivery, downstream notification, CDC-style compliance ingestion planning, and blockchain event normalization.
- Offset handling is explicit where required; the Blockchain Event Service uses
EARLIESToffset reset for raw event processing.
Service-by-Service Integration Overview
DEUSS Core Payment Service
Status: Enabled (consumers only, no producers)
| Topic | Event | Listener | Purpose |
|---|---|---|---|
BondRegistryEvents.BOND_PUBLISHED | BondPublishedEvent | BondPublishedListener | New bond published → validate and generate paydays |
BlockchainEvents.COUNTER_OFFER | CounterOfferEvent | CounterOfferListener | Counter-offer created → trigger payment creation |
BlockchainEvents.DEAL_CREATED | DealCreatedEvent | DealCreatedListener | Deal created → record payment and notify the PSP |
Configuration:
kafka:
group-id: ${KAFKA_GROUP_ID:`core-payment-service`}
Blockchain Event Service
Kafka Integration
Consumer
- Consumes raw blockchain logs from
EventerEvents.RAW_DATA - Uses
EARLIESToffset reset - Persists processing results
- Skips events already marked as
PROCESSED
Producers
Publishes normalized events to the Interest Discovery, Bond Registry, and Fungible Token event domains.
The service is therefore both:
- a Kafka consumer of infrastructure-level blockchain events
- a Kafka producer of business-level DEUSS events
Broker Platform User Service
Kafka Integration
Status: Enabled
Producers
- user registration events
- passkey-created events
Consumer
- originator employee updates
Kafka is used for:
- propagating user lifecycle events
- synchronizing originator roles based on company membership changes
- notifying downstream services about passkey and on-chain account creation
Broker Platform Payment Service
Kafka Integration
Status: No direct Kafka producers or consumers were identified in the analyzed service source.
Although the service depends on shared Kafka libraries, the payment workflow is implemented primarily through:
- REST APIs
- scheduled or service-level processing
- internal HTTP clients
- external Payment Service Provider (PSP) callbacks
Any event-driven processing is not explicitly verified in the available Payment Service source.
Broker Platform Notification Service
Kafka Producers & Consumers
Producers
No Kafka producers were identified in the service.
Consumers
NotificationEvents.CREATED- Receives a notification creation event.
- Creates one persisted notification record per recipient user.
Kafka is used for asynchronous notification creation events.
Broker Platform Media Service
Kafka Producers & Consumers
Producers
{requestingService}.resizing.result- Notifies the requesting service that processing completed.
- Returns the generated thumbnail key.
- Reports success or a processing error.
Consumers
media.resizing.requested- Requests image thumbnail generation.
Kafka is used for asynchronous request processing and result notification.
Broker Platform Bond Issuance Service
Kafka Producers & Consumers
Producers
NotificationEvents.CREATED- Publishes bond-related notification events for the Notification Service.
Consumers
No Kafka consumers were verified in the inspected application source.
Kafka publishes bond-related notification events consumed by the Notification Service.