Oracle GoldenGate 23ai: Dive into New Features with the Upgraded GoldenGate LiveLab

Jan Leemans
5 min readOct 2, 2024

--

GoldenGate 23ai New Features
GoldenGate 23ai New Features

Introduction to Oracle GoldenGate 23ai

In July 2024 Oracle released the 23ai version of the Oracle GoldenGate for Distributed Applications and Analytics (or GGDAA for short), completing the earlier release of GoldenGate 23ai for the Oracle Database.

The most visible feature is the newly designed Graphical User Interface, which is a nice improvement over the previous look & feel, with more logical assistant steps to guide you through the setup process of your integrations.

But especially the GoldenGate for Distributed Applications and Analytics release is packed with new components that are most important for Developers: Microservices Transaction Management, and Data Streams.

In this article I’ll briefly describe the key new features and explain how I upgraded my GoldenGate LiveLab to the new version where you can try it out for free!

New Features in Oracle GoldenGate 23ai

First up, let’s talk about vector replication. This is a game-changer for AI and machine learning applications. With vector replication, you can replicate vector data types in real time across a variety of different technologies, being able to consolidate all your distributed vector data into one central hub.

Next, we have Data Streaming. This feature uses AsyncAPI to set up a Pub/Sub access to database events. In simpler terms, it allows events in the database to flow smoothly into any application that subscribes to the WebSocket: this could be CRUD operations on the tables, or actual DDL commands changing the table definitions themselves.

The new graphical user interface (GUI) is another highlight. Oracle has given the GUI a complete makeover, making it more user-friendly and visually appealing. The new look and feel is designed to make setting up integrations easier, with better navigation and more intuitive controls.

Support for the new Oracle Database 23ai is also a big deal. This means you can take full advantage of the latest database features, including advanced AI capabilities and improved performance. The seamless integration between GoldenGate 23ai and Oracle Database 23ai ensures that your data management is as efficient and effective as possible.

One example is the JSON Relational Duality feature available in DB 23ai. You can directly capture changes on the document side of the duality views, propagating the document through the Data Streams already discussed. But there is a long list of other new features: Support for Blockchain and immutable tables, Lock-free Reservation columns, and much more!

Upgrading to GoldenGate 23ai

Upgrading from GoldenGate 21c to 23ai is simple! My goal was to upgrade my existing GoldenGate 21c LiveLab environment to the new 23ai version, and this was very straightforward. All I had to do was to downloading the software and adjust the parameters of the GoldenGate environment to point to the new Oracle_Home directories of the 23ai versions. In my case, I had to install both the Oracle GoldenGate 23ai component as well as the GoldenGate for Distributed Applications and Analytics, as my lab is setting up a data integration between an Oracle Database and a Kafka Stream. More details in the GoldenGate 23ai Upgrade Documentation

Running the new LiveLab

So if you want to experience the new Look & Feel of GoldenGate yourself, here is the link to the lab.

Starting the lab can be done in 2 ways: the Green button or the Black Button.

  • With the Green button, an environment is created in the background for you, with a Linux desktop which you can access through VNC using your brower. Just follow the link and off you go! You can use this environment for a few hours only, so make sure to start right away.
  • Alternatively, if you have access to an Oracle OCI environment, you can use the Black Button to install the Lab setup on your own environment, using a simple Terraform script. All info is provided in the Lab Setup document, and the advantage of this option is you decide yourself how long you keep this environment running — hours, days or weeks.

Once your environment is up and running, you can experience the new GUI, here an example of the top-level screen of the Admin Console:

Oracle GoldenGate 23ai Admin Console

You can see the left-side navigation menu giving you a clear overview of all the elements in your environment: the Deployments, the Services, the DB Connections, etc.

For the rest, the LiveLab follows the same steps as before:

  • Set up a Database connection
  • Configure the Extract from one of the DB schema’s
  • Set up the Distribution to a remote server
  • Configure the Replication into a Kafka stream

Exploring the new features: Data Streams

With the new version of GoldenGate DAA (Distributed Applications and Analytics), you can easily publish all changes to a data source, for example an Oracle Database, and allow applications to subscribe to it. All changes are published as soon as they are committed to the database.

If you’ve already run through the LiveLab, you already have an extract configured on the database. You can configure GoldenGate to make this data flow available through a Data Stream, on the same screen where you already configured the Distribution Path to the Kafka side of the environment.

Data Streams

You follow the wizard to configure the specifics of your stream (format, buffer size, delivery logic) and you get a full description of your WebSocket endpoint as a result:

Web Socket interface (obfuscated IP addresses)

Once this is up and running you can use the below code snippet in Python to read the stream:

import asyncio
import websockets
import json
import logging

# Setting up logging
logging.basicConfig(filename='websocket_messages.log', level=logging.DEBUG,
format='%(asctime)s - %(message)s')

async def consume_messages(uri):
async with websockets.connect(uri=uri) as websocket:
while True:
try:
message = await websocket.recv()
data = json.loads(message)
print("data:",data)
logging.info(f"Message received: {data}")
except websockets.exceptions.ConnectionClosed:
print("Connection closed")
break
except json.JSONDecodeError:
print("Failed to decode JSON message")
except Exception as e:
print(f"An error occurred: {e}")

async def main():
uri = "ws://oggadmin:oggadmin@123.123.123.123:10101/services/v2/stream/dtstr?begin=earliest"
await consume_messages(uri)

loop = asyncio.get_event_loop()

loop.run_until_complete(main())

The resulting log file contains all the database transactions in JSON format, ready to be consumed by the application.

Conclusion

Oracle GoldenGate 23ai is packed with awesome new features like vector replication, data streaming, a revamped GUI, support for Oracle Database 23ai, and the JSON diff data type. These enhancements make it a powerful tool for anyone looking to optimize their data management and AI applications. Whether you’re a data pro or just getting started, GoldenGate 23ai has something to offer. Try it out yourself through my new GoldenGate LiveLab

--

--

Jan Leemans
Jan Leemans

Written by Jan Leemans

Technology enthusiast, amateur cyclist, and Business Development Director for Oracle EMEA, focusing on Application Development and Data Management

No responses yet