Transactional Event Queues
Oracle Transactional Event Queues (TxEventQ) is a messaging platform built into Oracle Database that combines the best features of messaging and pub/sub systems. TxEventQ was introduced as a rebranding of AQ Sharded Queues in Oracle Database 21c, evolving from the Advanced Queuing (AQ) technology that has been part of Oracle Database since version 8.0. TxEventQ continues to evolve in Oracle Database 23ai, with Kafka Java APIs, Oracle REST Data Services (ORDS) integration, and many more features and integrations.
TxEventQ is designed for high-throughput, reliable messaging in event-driven microservices and workflow applications. It supports multiple publishers and consumers, exactly-once message delivery, and robust event streaming capabilities. On an 8-node Oracle Real Application Clusters (RAC) database, TxEventQ can handle approximately 1 million messages per second, demonstrating its scalability.
TxEventQ differs from traditional AQ (now referred to as AQ Classic Queues) in several ways:
-
Performance: TxEventQ is designed for higher throughput and scalability.
-
Architecture: TxEventQ uses a partitioned implementation with multiple event streams per queue, while AQ is a disk-based implementation for simpler workflow use cases.
-
Enhanced interoperability with Apache Kafka, JMS, Spring Boot, ORDS, and other software systems.
Key features of Oracle Database Transactional Event Queues include:
-
Transactional messaging: Enqueues and dequeues are automatically committed along with other database operations, eliminating the need for two-phase commits.
-
Exactly once message delivery.
-
Strict ordering of messages within queue partitions.
-
Retention of messages for a specified time after consumption by subscribers.
-
Capability to query message queues and their metadata by standard SQL.
-
Transactional outbox support: This simplifies event-driven application development for microservices.
For developers, TxEventQ can be integrated into modern application development environments using Oracle Database. It’s particularly useful in microservices architectures and event-driven applications where high-throughput, reliable messaging is crucial. The Kafka-compatible Java APIs allow developers to use existing Kafka code with minimal changes, simply by updating the broker address and using Oracle-specific versions of KafkaProducer and KafkaConsumer.
Oracle Database Transactional Event Queues are free to use with Oracle Database in any deployment, including Oracle Database Free.
Citations: