TriggerMesh recently announced the availability of their cloud native integration platform on the Oracle Cloud Marketplace. TriggerMesh enables real-time integration with Oracle Database and cloud services, so Oracle customers can build event-driven applications out of any on-premises application and any cloud service.
The central technical component in the TriggerMesh and Oracle partnership is the Oracle Event Source. The Database Event Source translates on-premises Oracle database transactions into standard CloudEvents, so that TriggerMesh can ingest and route them to practically any cloud service.
This blog describes the Oracle Database Event Source, how it works, how it helps Oracle customers, and how to get started.
As shown in Figure 1, the Oracle Database Event Source provides a way for database-level changes to propagate to the cloud and be acted upon by your defined listeners—anything from a serverless function to a Zendesk ticket.
Figure 1: Architecture View of Oracle and TriggerMesh Integration
The Oracle Database Event Source uses database triggers and monitors database changes to propagate updates on a per-row basis. The process uses the TriggerMesh Oracle Source image available on the Oracle Marketplace.
Upon installation, which is documented in the README file, an administrative program installs triggers on the specific database tables and associates them with an identifiable event. Once the trigger fires because of a change in the data, it makes an entry to a transaction table that indicates the type of change, along with the old and new data.
Once a change is added to the transaction table, it forwards the event to the TriggerMesh Oracle service, which translates the Oracle Database change event into a standard CloudEvent. TriggerMesh can now send this event to other supported services, such as an Oracle Cloud Function, creating an email using Sendgrid, an SMS using Twilio, or even creating a ticket using Zendesk.
Applications have traditionally been written to use a database and provide some kind of interface, such as a batch program that sends customer orders to a known location on a nightly basis, or a website used for business functions. Traditionally, everything is tightly coupled, and when business functionality is exposed through an API layer or an enterprise bus, the functionality is kept in-house.
With TriggerMesh, you can use existing databases and easily connect the row-level data to today’s cloud-based services. This cloud native integration capability opens up limitless flexibility to solving today’s application modernization and digital transformation challenges.
The Oracle Database Event Source uses the eventing infrastructure within Oracle Database to produce cloud native events that TriggerMesh can use and translate into any number of registered targets, which can be thought of as services that consume events.
Direct access to the source Oracle Database is essential. When provisioning the image from the Marketplace, ensure that the instance has full access to the database. Also, open the default database port of 1521, because the nature of the change notification mechanism that Oracle employs for both the database and their underlying library. Open Port 31337 to allow the Oracle Database to talk to the Event Source that’s included with this image and done during the installation process.
Along with the access, a Database user with the ability to create a user and grant permissions is required for the installation process.
To fully utilize the Oracle Database Event Source, you need an account on TriggerMesh. Once logged in, create an optional secret to ensure authenticated access between the Oracle Database Event Source and the TriggerMesh Source.
Click the Secrets menu on the far left, and then click the Add Secret button. When the menu drops down, click Other Secret.
Enter in the preshared key to use and the name of the secret. The bridge that’s created later references it.
The other piece of information required is the listening service to receive the Oracle Database Events. If this service hasn’t been created yet on its own or from a bridge, the name resembles the following pattern: <service-name>.<username>.cloud.triggermesh.io. (where service-name is a traditional DNS hostname).
For more information, including a short video tutorial and more detailed user documentation, visit the TriggerMesh profile page on the Oracle Cloud Marketplace. Don’t hesitate to reach out with any questions.