-
Notifications
You must be signed in to change notification settings - Fork 546
Multi Application (Multi Language) Workflows Example #1263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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]>
Signed-off-by: Cassandra Coyle <[email protected]>
@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 |
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 |
There was a problem hiding this 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. |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Quick Start | |
## Quickstart |
@@ -0,0 +1,16 @@ | |||
apiVersion: dapr.io/v1alpha1 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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. | ||
|
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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)
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 |
I believe I incorporated all of @alicejgibbons reviews in the new PR here. |
Added a multi app example including a go and java scenario.