Oracle 23ai introduces Kafka-compatible APIs for Transactional Event Queues (TxEventQ) — Oracle’s messaging and event streaming infrastructure. This means your existing Kafka producer and consumer code can talk to Oracle Database without any changes.
What are Transactional Event Queues?
TxEventQ is Oracle’s built-in messaging system — stored inside the Oracle Database, with full ACID guarantees. Unlike standalone Kafka, messages in TxEventQ participate in database transactions. If a transaction rolls back, the message is also rolled back.
The Kafka bridge:
Oracle 23ai exposes TxEventQ over the Kafka protocol. Kafka clients (using the standard Kafka Java client, Confluent libraries, or any Kafka-compatible client) connect to Oracle’s Kafka endpoint and produce/consume messages transparently.
# Standard Kafka client configuration
bootstrap.servers=oracle-db-host:9092
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
# (Oracle credentials used for SASL auth)
Creating a Kafka-compatible topic (TxEventQ):
BEGIN
DBMS_AQADM.CREATE_TRANSACTIONAL_EVENT_QUEUE(
queue_name => 'order_events',
queue_payload_type => DBMS_AQADM.JMS_TYPE
);
DBMS_AQADM.START_QUEUE('order_events');
END;
Why this matters:
- Transactional safety: A Kafka consumer acknowledging a message and updating a database row are one atomic operation — no dual-write problem.
- Simplified architecture: Replace your Kafka cluster + database for use cases that require exactly-once semantics between messaging and data storage.
- Migration path: Gradually migrate Kafka-based microservices to Oracle without rewriting clients.
This bridges two worlds that have traditionally required complex integration middleware. For Oracle-centric architectures, it’s a compelling alternative to external Kafka clusters.
