In the evolving landscape of enterprise systems, the need for reliable message delivery, guaranteed ordering, and exactly-once event processing has become paramount. While Apache Kafka has emerged as a popular solution for modern event streaming, organizations deeply integrated with Oracle Database might seek alternatives that align more closely with their existing infrastructure.

Oracle Transactional Event Queues (TxEventQ) offers a high-performance, in-memory queuing and streaming feature embedded within Oracle Database. It empowers developers to implement event-driven, microservice-based systems with strong consistency and transactional guarantees, all without departing from the database environment.

In this blog post, we’ll explore:

  • The evolution from Advanced Queuing (AQ) to TxEventQ
  • Core concepts and terminology
  • Use cases and patterns enabled by TxEventQ
  • Scenarios where TxEventQ is the optimal choice

A Brief History of Oracle Queuing: From AQ to TxEventQ

Oracle Transactional Event Queues (TxEventQ) isn’t a completely new technology — it has evolved steadily over the past two decades from proven, enterprise-grade messaging systems. Oracle first introduced Advanced Queuing (AQ) back in the late 1990s as a transactional message queuing solution tightly integrated with Oracle Database’s SQL and PL/SQL capabilities. Over the years, AQ matured significantly, gaining Java Message Service (JMS) support and playing a crucial role in Oracle Streams-based replication and event-driven architectures, becoming a trusted component of many enterprise systems.

As demands for scalability and real-time performance grew, Oracle introduced AQ Sharded Queues in version 12.2, maturing it further in 19c. This update addressed critical scalability challenges, especially around Oracle RAC deployments, by introducing partitioned tablesin-memory message caching, and key-based sharding to improve throughput, reduce contention, and allow parallel message processing.

In Oracle Database 21c, these sharded queues were rebranded as Transactional Event Queues (TxEventQ), marking Oracle’s commitment to high-performance event streaming and supporting modern event-driven architectures. By the time Oracle 23ai was released, TxEventQ had evolved further, providing Kafka-compatible APIssmarter RAC-aware partitioning, and native integration capabilities tailored specifically for multi-cloud microservices and AI workflows.

Today, TxEventQ represents Oracle’s ongoing investment in a robust, trusted, and continuously improving platform for transactional messaging, real-time event streaming, and scalable distributed applications — all built directly into Oracle Database.

 

What Is TxEventQ?

Oracle Transactional Event Queues (TxEventQ) is Oracle Database’s native, high-performance messaging and streaming platform, designed specifically for modern distributed systems. Think of it as your built-in messaging backbone, seamlessly embedded inside your existing Oracle Database. It enables applications to reliably exchange events both synchronously (within database transactions) and asynchronously (via real-time streaming), providing exactly-once delivery guarantees and ensuring messages arrive in the correct order.

What sets TxEventQ apart is its ability to handle complex messaging patterns — from traditional point-to-point queues to sophisticated publish-subscribe (Pub/Sub) models — without external broker infrastructure. It guarantees precise message ordering through FIFO or key-based sharding, giving you complete control over how events flow through your systems. Additionally, TxEventQ offers native support for transactional messaging with replay capabilities, perfect for event-driven microservices, real-time analytics pipelines, and AI-driven workflows.

Best of all, if you’re already using Oracle Database, TxEventQ is available at no additional charge. There’s no extra licensing, plugins, or activation required — it’s included and ready to use immediately. In short, TxEventQ gives you the power of messaging and real-time streaming right at your Oracle Database — simplifying your architecture and significantly reducing operational complexity.

Core Concepts & Terminology

  • Queue: A container for messages, typically used in point-to-point communication. It can be configured as FIFO for strict ordering or partitioned for parallel processing, where each partition is consumed by a single session.
  • Topic: A queue configured for multi-consumer delivery using the publish/subscribe (Pub/Sub) model. Each subscriber (consumer group) receives its own copy of each message independently.
  • Shard (Partition): A logical subdivision of a queue that enables horizontal scaling by distributing messages across multiple consumers. Shards are often assigned based on message keys to preserve ordering and affinity.
  • Producer: An application or service that publishes messages to a queue or topic.
  • Consumer: An application or service that retrieves and processes messages from a queue or topic.
  • Subscriber (Consumer Group): A named group of consumers that collectively subscribe to a queue or topic. Each message is delivered once to the group, and one member within the group processes it — enabling load-balanced parallelism.
  • Subscriber Session (Consumer Instance): An individual consumer within a subscriber group. Each session is assigned to one or more shards and is responsible for processing messages from those shards.
  • Sticky Dequeue: Ensures ordered processing by binding a shard to a specific subscriber session. This guarantees message order for a given key and prevents other sessions from consuming that shard.
  • Key-Based Queueing: Uses a hash of a message key (e.g., account ID or order ID) to consistently route related messages to the same shard — ensuring ordering and processing affinity across consumers.
  • Payload Types: Supports RAWJSONADT (Object Type), and JMS formats for flexible message structures.
  • Exception Queue (Dead-letter Queue): A special queue where unprocessed or failed messages are routed after exceeding retry attempts, enabling reprocessing, inspection, or alerting.
  • Message Retention & Expiration: Configure time-to-live (TTL) and message retention policies for compliance, replay, or cleanup.
  • Message Propagation: Automatically forward messages across queues or databases, useful for replication and distributed workflows.
  • Notification Services: Notify subscribers or trigger callbacks when new messages arrive — enabling event-driven responsiveness without polling.

 

Real-World Design Patterns & Modern Use Cases

TxEventQ goes beyond traditional queuing — it also supports high-throughput streaming, event coordination, and system-wide consistency features essential to modern architectures. It enables:

  • Real-time ingestion and processing of events
  • Message filtering, prioritization, and delayed delivery
  • Replay of messages for analytics, debugging, or recovery
  • Integration with Change Data Capture (CDC) flows
  • Native support for retries and transactional commit logic

TxEventQ also enables several advanced patterns commonly used in distributed systems:

  • Multi-cloud Integration: Coordinate event flows across Oracle and non-Oracle environments using TxEventQ in combination with DB Links or REST-based consumers.
  • Saga Pattern: Implement long-running distributed transactions using event-driven coordination and compensating actions.
  • Cache Invalidation via True-Cache: Emit event notifications to keep distributed cache layers in sync without manual coordination.
  • Transactional Outbox Pattern: Reliably publish domain events and update business state atomically within the same transaction — eliminating dual-write concerns and supporting microservice decoupling.

When Should You Use TxEventQ?

TxEventQ is an excellent fit for teams that want to build scalable, event-driven applications without the operational overhead of running external messaging infrastructure. You should consider using TxEventQ if you:

  • Already use Oracle Database and want to add messaging or real-time streaming without installing or managing anything else
  • Need guaranteed message ordering and exactly-once delivery
  • Operate in Oracle RAC or Autonomous Database (ADB) environments and want a queueing solution optimized for it
  • Build microservices that depend on reliable, transactional event workflows
  • Want native SQL access to queues for querying, monitoring, or debugging
  • Are integrating streaming pipelines directly within your database-centric ecosystem

TxEventQ is also a strong fit for product teams inside large enterprises already running centralized Kafka clusters. Instead of spinning up a new Kafka environment (and navigating provisioning, ACLs, or governance), teams can use TxEventQ directly within their Oracle Database — publishing enterprise events to the central Kafka cluster when needed, while keeping their own domain messaging fast, autonomous, and production-ready. This accelerates go-to-market timelines while keeping you connected to enterprise infrastructure standards.



References