java-sdk/spring-boot-examples
salaboy 1e4bcf9b9f
Spring boot workflow patterns examples with mechanical markdown and tests (#1377)
* Feat Add TLS & mTLS support for gRPC with root CA and insecure mode (#1361)

* feat: Support for GRPC ssl

Signed-off-by: Javier Aliaga <javier@diagrid.io>

* add tests

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix CI

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add back else if

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* channel cleanup

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add root ca support

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* checkstyles

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add insecure

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix checkstyles

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* use InsecureTrustManagerFactory

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix test

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

---------

Signed-off-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Co-authored-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: salaboy <Salaboy@gmail.com>

* spring boot workflow patterns initial version

Signed-off-by: salaboy <Salaboy@gmail.com>

* adding README for workflows

Signed-off-by: salaboy <Salaboy@gmail.com>

* adding child example

Signed-off-by: salaboy <Salaboy@gmail.com>

* updating examples to work with markdown tests

Signed-off-by: salaboy <Salaboy@gmail.com>

* running mechanical markdown for workflow examples

Signed-off-by: salaboy <Salaboy@gmail.com>

* Fix the issue with retries not happening correctly for Activities and Workflows (#1343)

* Add coverage for some properties (#1297)

Signed-off-by: sirivarma <siri.varma@outlook.com>

* Make the DAPR version being used consistent across all tests (#1299)

Signed-off-by: sirivarma <siri.varma@outlook.com>

* Separate Dapr constants from IT container constants (#1315)

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Use Java Bean for connection details and add more tests (#1317)

* Use Java Bean for connection details and add more tests

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Simplify mock setup

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Adding even more tests for test coverage

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

---------

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Update CONTRIBUTING.md

Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Bump codecov/codecov-action from 5.4.0 to 5.4.2 (#1318)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.0 to 5.4.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.4.0...v5.4.2)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix URL building logic (#1320)

* Fix URL building logic

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Add test for query params

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Fix the assertion in the test

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Adjust the tests

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Remove uneeded changes from IT test

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Revert some unintended changes

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Simplify the testing a little bit

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Adjust the test to use ServerRequest

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Test removing things from method invoke controller

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Add query param encoding test

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Revert some unintended changes

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

* Some tiny styles

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>

---------

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Generate updated javadocs for 1.14.1

Signed-off-by: Dapr Bot <daprweb@microsoft.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Add Conversation AI to Java SDK (#1235)

* Conversation first commit

Signed-off-by: Siri Varma Vegiraju <svegiraju@microsoft.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* Add unit tests

Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* change ai to conv

Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* Move to single module

Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* Remove module

Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* Add Integration tests

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Update sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprConversationIT.java

Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Address comments

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Import tag

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Address comments

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Make common config

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Address comments

Signed-off-by: siri-varma <siri.varma@outlook.com>

* fix constant

Signed-off-by: siri-varma <siri.varma@outlook.com>

* fix constant

Signed-off-by: siri-varma <siri.varma@outlook.com>

* fix constant

Signed-off-by: siri-varma <siri.varma@outlook.com>

* fix s

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Make common config

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Update README.md

Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>

* Update README.md

Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>

---------

Signed-off-by: Siri Varma Vegiraju <svegiraju@microsoft.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Add docs for usage of Jobs SDK (#1323)

* Add doc for jobs

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Add docs for Jobs

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Apply suggestions from code review

Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>

---------

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Co-authored-by: artur-ciocanu <artur.ciocanu@gmail.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Use dapr/durabletask-java (#1336)

* microsoft durabletask-java -> dapr durabletask-java

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* update another ref

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* 1.5.2 release

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix import order

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* Sdk new changes

Signed-off-by: siri-varma <siri.varma@outlook.com>

* Refine workflows

Signed-off-by: siri-varma <siri.varma@outlook.com>

* add ;

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* rm try

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

---------

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: siri-varma <siri.varma@outlook.com>
Co-authored-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Update master version to 1.16.0-SNAPSHOT

Signed-off-by: Dapr Bot <daprweb@microsoft.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix NPE

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Renaming and exposing connection details (#1341)

Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* [Master] Fix Vulnerabilities (#1354)

* update okio

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* rm unused dep

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

---------

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Feat Add TLS & mTLS support for gRPC with root CA and insecure mode (#1361)

* feat: Support for GRPC ssl

Signed-off-by: Javier Aliaga <javier@diagrid.io>

* add tests

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix CI

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add back else if

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* channel cleanup

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add root ca support

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* checkstyles

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* add insecure

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix checkstyles

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* use InsecureTrustManagerFactory

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

* fix test

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>

---------

Signed-off-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Co-authored-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Address comments

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

* Fix things

Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>

---------

Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dapr Bot <daprweb@microsoft.com>
Signed-off-by: Siri Varma Vegiraju <svegiraju@microsoft.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Javier Aliaga <javier@diagrid.io>
Co-authored-by: Matheus Cruz <56329339+mcruzdev@users.noreply.github.com>
Co-authored-by: artur-ciocanu <artur.ciocanu@gmail.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
Co-authored-by: Dapr Bot <daprweb@microsoft.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: salaboy <Salaboy@gmail.com>

* 1.5.4 (#1375)

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: salaboy <Salaboy@gmail.com>

* fixing order Id correlation

Signed-off-by: salaboy <Salaboy@gmail.com>

* fixing waiting time for tests to run

Signed-off-by: salaboy <Salaboy@gmail.com>

* fixing app name

Signed-off-by: salaboy <Salaboy@gmail.com>

* adding app name and removing log lines

Signed-off-by: salaboy <Salaboy@gmail.com>

* Bump codecov/codecov-action from 5.4.2 to 5.4.3 (#1379)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.2 to 5.4.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.4.2...v5.4.3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* Bump fossas/fossa-action from 1.6.0 to 1.7.0 (#1380)

Bumps [fossas/fossa-action](https://github.com/fossas/fossa-action) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/fossas/fossa-action/releases)
- [Commits](https://github.com/fossas/fossa-action/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: fossas/fossa-action
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* Fix component spec parsing (#1370)

* Fix component spec parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* Fix component spec parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* Fix component spec metadata parsing

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

* fix checkstyle-error

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>

---------

Signed-off-by: Deepak <sdeepaksharma15@gmail.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: artur-ciocanu <artur.ciocanu@gmail.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* Update spring-boot-examples/workflows/README.md

Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* fixing comments

Signed-off-by: salaboy <Salaboy@gmail.com>

* Update body.json

Signed-off-by: artur-ciocanu <artur.ciocanu@gmail.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* Update FanOutInWorkflow.java

Signed-off-by: artur-ciocanu <artur.ciocanu@gmail.com>
Signed-off-by: salaboy <Salaboy@gmail.com>

* clean up logs for multiple executions, for standalone mode

Signed-off-by: salaboy <Salaboy@gmail.com>

* Update application.properties

Signed-off-by: artur-ciocanu <artur.ciocanu@gmail.com>

---------

Signed-off-by: Javier Aliaga <javier@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: salaboy <Salaboy@gmail.com>
Signed-off-by: sirivarma <siri.varma@outlook.com>
Signed-off-by: Artur Ciocanu <ciocanu@adobe.com>
Signed-off-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Dapr Bot <daprweb@microsoft.com>
Signed-off-by: Siri Varma Vegiraju <svegiraju@microsoft.com>
Signed-off-by: siri-varma <siri.varma@outlook.com>
Signed-off-by: Deepak <sdeepaksharma15@gmail.com>
Signed-off-by: artur-ciocanu <artur.ciocanu@gmail.com>
Co-authored-by: Cassie Coyle <cassie.i.coyle@gmail.com>
Co-authored-by: Javier Aliaga <javier@diagrid.io>
Co-authored-by: Siri Varma Vegiraju <siri.varma@outlook.com>
Co-authored-by: Matheus Cruz <56329339+mcruzdev@users.noreply.github.com>
Co-authored-by: artur-ciocanu <artur.ciocanu@gmail.com>
Co-authored-by: Artur Ciocanu <ciocanu@adobe.com>
Co-authored-by: Cassie Coyle <cassie@diagrid.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
Co-authored-by: Dapr Bot <daprweb@microsoft.com>
Co-authored-by: iddeepak <87892182+iddeepak@users.noreply.github.com>
2025-05-21 14:56:55 -05:00
..
consumer-app Update master version to 1.16.0-SNAPSHOT 2025-05-08 18:32:56 +00:00
kubernetes Fix : Typo in code comments (#1381) 2025-05-21 09:01:09 -07:00
producer-app Update master version to 1.16.0-SNAPSHOT 2025-05-08 18:32:56 +00:00
workflows Spring boot workflow patterns examples with mechanical markdown and tests (#1377) 2025-05-21 14:56:55 -05:00
README.md Adding producer and consumer app examples for Spring Boot integration (#1208) 2025-02-28 20:33:40 -08:00
pom.xml Spring boot workflow patterns examples with mechanical markdown and tests (#1377) 2025-05-21 14:56:55 -05:00
spotbugs-exclude.xml Adding producer and consumer app examples for Spring Boot integration (#1208) 2025-02-28 20:33:40 -08:00

README.md

Dapr Spring Boot and Testcontainers integration Example

This example consists of two applications:

  • Producer App:
    • Publish messages using a Spring Messaging approach
    • Store and retrieve information using Spring Data CrudRepository
    • Implements a Workflow with Dapr Workflows
  • Consumer App:
    • Subscribe to messages

Running these examples from source code

To run these examples you will need:

  • Java SDK
  • Maven
  • Docker or a container runtime such as Podman

From the spring-boot-examples/ directory you can start each service using the test configuration that uses Testcontainers to boostrap Dapr by running the following command:

cd producer-app/
../../mvnw -Dspring-boot.run.arguments="--reuse=true" spring-boot:test-run

This will start the producer-app with Dapr services and the infrastructure needed by the application to run, in this case RabbitMQ and PostgreSQL. The producer-app starts on port 8080 by default.

The -Dspring-boot.run.arguments="--reuse=true" flag helps the application to connect to an existing shared infrastructure if it already exists. For development purposes, and to connect both applications we will set the flag in both. For more details check the DaprTestContainersConfig.java classes in both, the producer-app and the consumer-app.

Then run in a different terminal:

cd consumer-app/
../../mvnw -Dspring-boot.run.arguments="--reuse=true" spring-boot:test-run

The consumer-app starts in port 8081 by default.

Interacting with the applications

Now that both applications are up you can place an order by sending a POST request to :8080/orders/ You can use curl to send a POST request to the producer-app:

curl -X POST localhost:8080/orders -H 'Content-Type: application/json' -d '{ "item": "the mars volta EP", "amount": 1 }'

If you check the producer-app logs you should see the following lines:

...
Storing Order: Order{id='null', item='the mars volta EP', amount=1}
Publishing Order Event: Order{id='d4f8ea15-b774-441e-bcd2-7a4208a80bec', item='the mars volta EP', amount=1}

If you check the consumer-app logs you should see the following lines, showing that the message published by the producer-app was correctly consumed by the consumer-app:

Order Event Received: Order{id='d4f8ea15-b774-441e-bcd2-7a4208a80bec', item='the mars volta EP', amount=1}

Next, you can create a new customer to trigger the customer's tracking workflow:

curl -X POST localhost:8080/customers -H 'Content-Type: application/json' -d '{ "customerName": "salaboy" }'

A new Workflow Instance was created to track the customers interactions. Now, the workflow instance is waiting for the customer to request a follow-up.

You should see in the producer-app logs:

Workflow instance <Workflow Instance Id> started
Let's register the customer: salaboy
Customer: salaboy registered.
Let's wait for the customer: salaboy to request a follow up.

Send an event simulating the customer request for a follow-up:

curl -X POST localhost:8080/customers/followup -H 'Content-Type: application/json' -d '{ "customerName": "salaboy" }'

In the producer-app logs you should see that the workflow instance id moved forward to the Customer Follow Up activity:

Customer follow-up requested: salaboy
Let's book a follow up for the customer: salaboy
Customer: salaboy follow-up done.
Congratulations the customer: salaboy is happy!

Running on Kubernetes

You can run the same example on a Kubernetes cluster. Check the Kubernetes tutorial here.