|
| 1 | + |
| 2 | +# Simplify Event-driven Apps with TEQ in Oracle Database (with Kafka interoperability) Workshop |
| 3 | + |
| 4 | +## Introduction |
| 5 | + |
| 6 | +### About this Workshop |
| 7 | + |
| 8 | +This repository contains sample code from the workshop to help you understand Event Mesh using two message brokers and the technical capabilities inside the converged [Oracle Autonomous Database][ATP] to support a scalable event-driven microservices architecture. |
| 9 | + |
| 10 | +You will create four event-driven microservice and two messaging brokers to allow communication between them. In the first lab, you will deploy an Apache Kafka broker to leverage the event-driven communication between two microservices written in Spring Boot. In the second lab, you will create an Oracle Transactional Event Queues (TEQ) and experience the Kafka APIs working in the Kafka compatibility mode. Likewise, this module has the Spring Boot producer and consumer microservices but with Kafka Java client for TEQ, using the okafka library. And finally, in the third lab, you will experiment with the concept of Event Mesh, building a bridge between Kafka and TEQ brokers, and see messages being produced on the Kafka side and consumed on the TEQ side. |
| 11 | + |
| 12 | +Estimated Workshop Time: 50 minutes |
| 13 | + |
| 14 | +> This workshop is part of the [Oracle LiveLabs][LiveLabs] and you can access it through the following address [TEQ in Oracle Database][TEQinOracleDatabase] |
| 15 | +
|
| 16 | +### About Product/Technology |
| 17 | + |
| 18 | +* [Oracle Transactional Event Queues][TEQ] is a powerful messaging backbone offered by converged Oracle Database that allows you to build an enterprise-class data-centric microservices architecture. |
| 19 | + |
| 20 | +* [Kafka][kafka] is an open-source distributed event streaming platform used for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. |
| 21 | + |
| 22 | +* [okafka][okafka] library, contains Oracle specific implementation of Kafka Client Java APIs. This implementation is built on AQ-JMS APIs. |
| 23 | + |
| 24 | +* The applications will be deployed on [Oracle Cloud Infrastructure](https://www.oracle.com/cloud/) [Cloud Shell](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/cloudshellintro.htm) using pre-installed Docker Engine. |
| 25 | + |
| 26 | +## Objectives |
| 27 | + |
| 28 | +* The first Lab reviews the Kafka and Spring Boot Microservice built to produce and consume messages. |
| 29 | + |
| 30 | +* The second Lab will use Oracle Transactional Event Queues (TEQ) and okafka library and demonstrate the Kafka compatibility of TEQ. Also, this module has the same Spring Boot producer and consumer microservices but uses okafka in place of Kafka libraries and TEQ in the database in place of Kafka broker. |
| 31 | + |
| 32 | +* The third Lab will interconnect the Kafka broker and the Oracle Transactional Event Queues (TEQ), applying Kafka connector and Oracle Database Messaging libraries. This laboratory demonstrates the interoperability between the two brokers, with events flowing from the Kafka side to TEQ, finally consumed at the TEQ side. |
| 33 | + |
| 34 | +## Prerequisites |
| 35 | + |
| 36 | +* This workshop assumes you have an Oracle Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported. |
| 37 | + |
| 38 | +>**Note:** If you have a **Free Trial** account, when your Free Trial expires, your account will be converted to an **Always Free** account. You will not be able to conduct Free Tier workshops unless the Always Free environment is available. |
| 39 | +**[Click here for the Free Tier FAQ page.][FreeTier]** |
| 40 | + |
| 41 | +## Event Mesh Architecture Overview |
| 42 | + |
| 43 | +As shown in the followed diagram, we have: |
| 44 | + |
| 45 | +* A Kafka Broker and a set of services consuming and producing for it. |
| 46 | + |
| 47 | +* An Oracle TEQ Broker with another set of services around it. |
| 48 | + |
| 49 | +* And connector between Kafka and Oracle TEQ enabling a communication path between them. |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +You may now **proceed to the next lab** |
| 54 | + |
| 55 | +## Want to Learn More? |
| 56 | + |
| 57 | +* [Oracle Autonomous Database][ATP] |
| 58 | +* [Oracle Transactional Event Queues][TEQ] |
| 59 | +* [Microservices Architecture with the Oracle Database][MicroservicesArch] |
| 60 | +* [https://developer.oracle.com/][DRC] |
| 61 | + |
| 62 | +## Acknowledgements |
| 63 | + |
| 64 | +* **Authors** - Paulo Simoes, Developer Evangelist; Paul Parkinson, Developer Evangelist; Richard Exley, Consulting Member of Technical Staff, Oracle MAA and Exadata |
| 65 | +* **Contributors** - Mayank Tayal, Developer Evangelist; Sanjay Goil, VP Microservices and Oracle Database |
| 66 | +* **Last Updated By/Date** - Paulo Simoes, May 2022 |
| 67 | + |
| 68 | +## License |
| 69 | + |
| 70 | +Copyright (c) 2022 Oracle and/or its affiliates. |
| 71 | + |
| 72 | +Licensed under the Universal Permissive License v 1.0 as shown at <https://oss.oracle.com/licenses/upl>. |
| 73 | + |
| 74 | +[ATP]: https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html |
| 75 | +[TEQ]: https://docs.oracle.com/en/database/oracle/oracle-database/21/adque/index.html |
| 76 | +[kafka]: https://kafka.apache.org |
| 77 | +[okafka]: https://docs.oracle.com/en/database/oracle/oracle-database/21/adque/Kafka_cient_interface_TEQ.html#GUID-94589C97-F323-4607-8C3A-10A0EDF9DA0D |
| 78 | +[LiveLabs]: https://bit.ly/golivelabs |
| 79 | +[TEQinOracleDatabase]: https://bit.ly/TEQinOracleDatabase |
| 80 | +[FreeTier]: https://www.oracle.com/cloud/free/faq.html |
| 81 | +[DRC]: https://developer.oracle.com |
| 82 | +[MicroservicesArch]: https://www.oracle.com/technetwork/database/availability/trn5515-microserviceswithoracle-5187372.pdf |
0 commit comments