Sample code of application examples to build microservices with converged Oracle database and multi-cloud / hybrid cloud services

  • By Oracle
  • Last update: Dec 23, 2022
  • Comments: 12

Simplify microservices architecture with Converged Oracle Database

This repository contains sample code for simplifying microservices architectures by building solution examples for data-driven microservices that walk you through the creation of an open platform technology stack with the converged Oracle Autonomous Database including relational, JSON, text, spatial and graph data and using polyglot languages including Java and the Helidon MP and SE frameworks, Python and JavaScript via Node.js

Microservices are loosely-coupled service-oriented architectures with a bounded context. Microservices are increasingly used for application modernization to deliver agile application development practices. However, the data-driven nature of enterprise applications has made building, deploying, and maintaining microservices complex.

Sample Description
grabdish Mobile food delivery application sample code

Resources

License

Copyright (c) 2021 Oracle and/or its affiliates.

Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.

Github

https://github.com/oracle/microservices-datadriven

Comments(12)

  • 1

    polyglot tests failure

    First order is left in pending state and breaks auto test. Repros on Live Labs and Free Trial. Second message is processed.

    TEST_LOG_FAILED: Polyglot inventory-dotnet showOrder 366 nomatch

    `Result

    { "orderid": "366", "itemid": "sushi", "deliverylocation": "780 PANORAMA DR, San francisco, CA", "status": "pending", "inventoryLocation": "", "suggestiveSale": "" }`

  • 2

    allow ./build.sh , ./deploy.sh , etc. to work outside ws/cloudshell env

    Would be very nice to allow users to work from local machine rather than cloud shell once the initial workshop setup is complete.

    The two main tasks here being...

    1. either allow port of cloud shell env (ie instructions to copy "state" folder and source xyz to get state_get on path etc.) or allow local setting/override of DOCKER_REGISTRY etc.

    2. get rid of sed usage as it's not OS portable (fails on mac).

  • 3

    (O)Saga workshop

    https://github.com/oracle/microservices-datadriven/wiki/Sagas Workshop that shows use of beta OSaga feature in DB with PL/SQL, Java, Apex Workflow. WIP doc: https://paulparkinson.github.io/learning-library/developer-library/microservices-sagas/workshops/freetier

    • [x] #173
    • [x] #241
  • 4

    Bump spring-core from 5.3.19 to 5.3.20 in /workshops/oracleteq-kafka/springboot-oracleteq

    Bumps spring-core from 5.3.19 to 5.3.20.

    Release notes

    Sourced from spring-core's releases.

    v5.3.20

    :star: New Features

    • Refine CachedIntrospectionResults property introspection #28445
    • Improve tests and Javadoc on binding to a property of type javax.servlet.Part #27830
    • WritableResource doesn't have parity with Resource in @Value etc. [SPR-10656] #15284

    :lady_beetle: Bug Fixes

    • Ignore invalid STOMP frame #28443
    • @ModelAttribute name attribute is not supported in WebFlux #28423
    • Fix BindingResult error when ModelAttribute has custom name in WebFlux #28422
    • Request body deserialization failures are not captured by exception handlers in WebFlux #28155

    :notebook_with_decorative_cover: Documentation

    • Remove Log4J initialization from package-info.java in spring-web #28420
    • Remove Log4J configurer from package-info.java in spring-core #28411
    • Fix github issue reference in RequestMappingHandlerMapping #28372
    • Add Javadoc since tags for GraphQL constants #28369
    • Fix method reference in Kotlin documentation #28340

    :hammer: Dependency Upgrades

    • Upgrade to ASM 9.3 #28390
    • Upgrade to Reactor 2020.0.19 #28437

    :heart: Contributors

    We'd like to thank all the contributors who worked on this release!

    Commits
    • e0f56e7 Release v5.3.20
    • 83186b6 Refine CachedIntrospectionResults property introspection
    • dc2947c Ignore invalid connect frame
    • e4ec376 Disabling Undertow server in CoroutinesIntegrationTests
    • c81e11d Polishing
    • de6180b Upgrade to Reactor 2020.0.19
    • 1c10cdd Update copyright dates
    • 941b92c Make inner classes static when feasible
    • e26d883 Stop referring to features as Java 6/7 features where unnecessary
    • a1c7380 Add test for value attribute in @​ModelAttribute in WebFlux
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 5

    Bump loader-utils from 2.0.2 to 2.0.3 in /cloudbank/cloudbank-react

    Bumps loader-utils from 2.0.2 to 2.0.3.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 6

    microservices-data-refactoring: package of project is done

    Create 2 folder

    1. DataCollectorUsingSTSFiles - These files are used in Livelab Lab2 and Lab3 instructions.
    2. DRAGraphClient - Client Project to access graph and identify communities using community detection algorithm
  • 7

    WMS 8022: OCW Docs Fix

    Fix items for OCW Session 32:

    1. create an ocw-freetier OCW specific folder

    2. Lab 1, Task 4, Step 8 is using incorrect code for the font, this little section needs to be fixed.

  • 8

    WMS 8022: Version 1.1 Documentation/Code issues

    • [x] Lab 1 - Task 4 Step 3: The picture new-group is missing from the setup directory. ![Create a New Group](images/new-group.png " ") [doc]
    • [x] Lab 1 - Create policy steps needs images and more explanations
    • [x] Lab 1 - Task 8 Step 1 and Step 2: It seems that step 2 should be before step 1 as the OCID is required to complete step 1 [doc]
    • [x] Lab 2 - Task 1 Step 3: Should read This will take a few minutes currently said seconds [doc]
    • [x] Change <spring-kafka.version>2.9.0</spring-kafka.version> to <spring-kafka.version>2.8.8</spring-kafka.version>. The version 2.9.0 maven build fails (Lab 2 Task 2) with cannot find symbol [ERROR] symbol: class SeekToCurrentErrorHandler [code]
    • [x] Lab 2 - Task 3 Step 1: container-logs kafka-producer 6 what are we looking for in the output? container-logs kafka-producer 6 | grep -I KafkaProducerApplication maybe a better way of verifying which produces 19:17:00.993 [main] INFO c.o.d.k.p.KafkaProducerApplication - Started KafkaProducerApplication in 6.061 seconds (JVM running for 7.647) [doc]
    • [x] Lab 2 - Task 4 Step 2: The image doesn't match the output. The output should be something like Launching Kafka consumer microservice! 0ea4ade71e218f86d48a235b673241e23e83d3d21c139d27c8f630ac808ae38d Tue Aug 9 19:19:43 UTC 2022: Waiting for consumer running! Kafka consumer microservice is running! [doc]
    • [x] Lab 2 Task 4 Step 3: What are we looking for. Maybe container-logs kafka-consumer 6 | grep -I message1 makes it easier? [doc]
    • [x] Lab 3 Task 3 Step 2: container-logs teq-producer 6 What are we looking for . Perhaps container-logs teq-producer 100 | grep -i "okafka producer" makes it easier to understand? [doc]
    • [x] Lab 3 Task 3 Step 4: container-logs teq-consumer 100 You have to run this a few times to actually see the message coming through. Perhaps change the command to container-logs teq-consumer 10000 | grep -i "message" to get the message. You may have to run this a few times to get the message out of the logs. [doc]
    • [x] Lab 4 Task 1: The JSON isn't correct (wrong topic name etc.) Could be replace with { "connector.class": "io.confluent.connect.jms.JmsSinkConnector", "tasks.max": "1", "topics": "LAB_KAFKA_TOPIC", "java.naming.factory.initial": "oracle.jms.AQjmsInitialContextFactory", "java.naming.provider.url": "jdbc:oracle:thin:@LAB_DB_SVC?TNS_ADMIN=/home/appuser/wallet", "db_url": "jdbc:oracle:thin:@LAB_DB_SVC?TNS_ADMIN=/home/appuser/wallet", "java.naming.security.principal": "LAB_DB_USER", "java.naming.security.credentials": "LAB_DB_PASSWORD", "jndi.connection.factory": "javax.jms.XAQueueConnectionFactory", "jms.destination.type": "topic", "jms.destination.name": "LAB_TEQ_TOPIC", "key.converter":"org.apache.kafka.connect.storage.StringConverter", "value.converter":"org.apache.kafka.connect.storage.StringConverter", "confluent.topic.bootstrap.servers":"broker:29092", "confluent.topic.replication.factor": "1" } [doc]
    • [x] Lab 4 Task 1 Step 2: looks strange. It works but looks strange: [email protected]:kafka-connect-teq (us-ashburn-1)$ ./setup-kafka2teq-connect.sh Please enter Oracle DB Password: LABTEQTOPIC1 teqdb_USER teqdb LABTEQTOPIC1.[doc|code]
    • [x] Lab 4 Task 1 Step 3: I don't know what I'm looking for [doc]
    • [x] Lab 4 Task 1 Step 4: The output is { "name": "JmsConnectSync_teqlab", "connector": { "state": "RUNNING", "worker_id": "connect:8083" }, "tasks": [ { "id": 0, "state": "RUNNING", "worker_id": "connect:8083" } ], "type": "sink" } [doc]
    • [x] Lab 3: Mentions Oracle Database 20c Not sure if that version exists? [doc]
    • [x] Lab 4: Could be good to have the Overview of the Oracle Transactional Event Queues (TEQ) there too [doc]
    • [x] All Labs: If Cloud Shell times out, how to reset the environment variables [doc|code]
  • 9

    Bump json5 from 2.2.1 to 2.2.3 in /cloudbank/cloudbank-react-native

    Bumps json5 from 2.2.1 to 2.2.3.

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 10

    Bump json5 from 1.0.1 to 1.0.2 in /cloudbank/cloudbank-react

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 11

    OBaaS::Docs - Add OCI CLI and Kubectl as prerequisite

    • [ ] To configure local access to Oracle OKE and use Oracle Spring Command Line Interface (CLI) on your local machine, you must set up the OCI Command Line Interface (CLI).

    • [ ] To configure local access to Oracle OKE on your local machine, you must set up the Kubectl.

  • 12

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /mbaas-developer-preview/walking-history

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.