Skip to content

Conversation

cicoyle
Copy link
Contributor

@cicoyle cicoyle commented Sep 19, 2025

Added a multi app example including a go and java scenario.

Signed-off-by: Cassandra Coyle <[email protected]>
@cicoyle cicoyle requested review from a team as code owners September 19, 2025 23:00
@cicoyle cicoyle marked this pull request as draft September 19, 2025 23:01
Signed-off-by: Cassandra Coyle <[email protected]>
Signed-off-by: Cassandra Coyle <[email protected]>
Signed-off-by: Cassandra Coyle <[email protected]>
Signed-off-by: Cassandra Coyle <[email protected]>
@cicoyle cicoyle marked this pull request as ready for review September 23, 2025 19:42
@alicejgibbons
Copy link
Contributor

@cicoyle thoughts on making this a tutorial since its multi-language?? We already have a good set of tutorials from Marc for Dapr university and could add it here: https://github.com/dapr/quickstarts/tree/master/tutorials/workflow

@kendallroden
Copy link
Contributor

kendallroden commented Sep 24, 2025

I'm not able to review here but the current makefile commands require SDKMAN. You can update it to not use that and it works, or you need to add it as a dependency

Looks like the go sdk version is stale and should be updated from 1.13

Copy link
Contributor

@alicejgibbons alicejgibbons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @cicoyle great qs. LMK if you think this one would be a good use case for adding back in the mechanical markdown to ensure correctness on multiapp wfs going forward..

@@ -0,0 +1,117 @@
# Multi-App E-commerce Workflow Demo

This demo showcases a realistic e-commerce order processing scenario using Dapr's multi-application workflow capabilities. The scenario demonstrates how a Go application can orchestrate complex business processes across multiple Java services, including AI-powered recommendations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a link to docs for multi-app workflow stuff?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have this at the bottom of the readme in the related resources section.

## Prerequisites

- Dapr CLI installed and initialized (`dapr init`)
- Go installed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

versions of any of these pre-reqs?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also need to have make

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didnt put make bc you dont need it technically. Ill note this tho.

- Go installed
- Java and Maven installed

## Quick Start
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Quick Start
## Quickstart

@@ -0,0 +1,16 @@
apiVersion: dapr.io/v1alpha1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we typically put these in /resources folders

@@ -0,0 +1,4 @@
# Enable auto-env through the sdkman_auto_env config
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this file be removed? or added to gitignore?

# Multi-App E-commerce Workflow Demo

This demo showcases a realistic e-commerce order processing scenario using Dapr's multi-application workflow capabilities. The scenario demonstrates how a Go application can orchestrate complex business processes across multiple Java services, including AI-powered recommendations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a section maybe here that details the differences between cross app and multi app and when they are used.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure I understand what you are asking here. Multi app == cross app and vice versa. We are calling it multi app workflows whether its the same language across apps or different languages across apps.

For example, its multi app workflows if you have 2 java applications and one hosts the wf and simply calls the activity on the other app. In that same manner, it is multi app workflows if we have 1 go and 1 java application where the go app hosts the wf and calls the activity on the java app.

Both above examples are multi app workflows, just one is a multi language workflow, but that is still multi app workflows if that makes sense.

// Step 4: Generate AI Recommendations (call AI recommendation service)
log.Println("=== STEP 4: Starting AI Recommendations activity on ai-recommendation-service ===")
var recommendationResult RecommendationResult
if err := ctx.CallActivity("io.dapr.quickstarts.workflows.activities.GeneratePersonalizedRecommendationsActivity",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Call out what is a cross-app/multi-app call in code comments within the wf

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have // Step 4: Generate AI Recommendations (call AI recommendation service) already, happy to change it to `

// Step 4: Generate AI Recommendations (Multi-app call activity call to AI recommendation service)

@msfussell
Copy link
Member

msfussell commented Sep 25, 2025

I would prefer to put this particular sample into Samples repo and not into Quickstarts and certainly not under the /workflows folder. This is not a quickstart app, it has multiples language and 2 or 3 apps are sufficient to make the point . Also we have to consider any example to be done in other languages, including .NET. I would prefer to have a single language versions for Java, Go, .NET etc to demo multi-application workflow like over features and keep this simple.

@cicoyle
Copy link
Contributor Author

cicoyle commented Oct 21, 2025

I would prefer to put this particular sample into Samples repo and not into Quickstarts and certainly not under the /workflows folder. This is not a quickstart app, it has multiples language and 2 or 3 apps are sufficient to make the point . Also we have to consider any example to be done in other languages, including .NET. I would prefer to have a single language versions for Java, Go, .NET etc to demo multi-application workflow like over features and keep this simple.

I'd be happy to close this PR and open one to the samples repo. Will open a PR there and close this one out shortly

@cicoyle
Copy link
Contributor Author

cicoyle commented Oct 21, 2025

I believe I incorporated all of @alicejgibbons reviews in the new PR here.

@cicoyle cicoyle closed this Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants