Skip to content

Integrate Temporal .NET SDK into AdvancedSearch project#41

Open
devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
devin/1779805381-temporal-integration
Open

Integrate Temporal .NET SDK into AdvancedSearch project#41
devin-ai-integration[bot] wants to merge 1 commit into
masterfrom
devin/1779805381-temporal-integration

Conversation

@devin-ai-integration
Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration Bot commented May 26, 2026

Summary

Integrates the Temporal .NET SDK into the AspNetCore/React/AdvancedSearch project, wrapping the existing weather forecast generation in durable Temporal workflows.

Changes:

  • Added Temporalio and Temporalio.Extensions.Hosting v1.5.0 NuGet packages
  • Created Workflows/WeatherActivities.cs — Temporal activity that generates weather forecast data
  • Created Workflows/WeatherWorkflow.cs — Temporal workflow that orchestrates the activity
  • Updated Startup.cs — registered Temporal client (configurable via Temporal:TargetHost and Temporal:Namespace in appsettings) and a hosted worker on advanced-search-task-queue
  • Updated SampleDataController.csWeatherForecasts endpoint now starts a Temporal workflow and awaits its result instead of generating data inline
  • Added docker-compose.yml for running Temporal server + UI locally

The React frontend (FetchData.js) requires no changes — the API contract is unchanged.

Review & Testing Checklist for Human

  • Verify the Temporal NuGet package versions (1.5.0) are compatible with the project's .NET 6.0 target framework
  • Start Temporal server via docker-compose up in AspNetCore/React/AdvancedSearch/ before running the app
  • Run the app and confirm api/SampleData/WeatherForecasts returns forecast data through the Temporal workflow
  • Check the Temporal UI at http://localhost:8080 to verify workflows are executing on advanced-search-task-queue
  • Confirm the EasyQuery middleware and other endpoints are unaffected

Recommended test plan:

  1. cd AspNetCore/React/AdvancedSearch && docker-compose up -d
  2. dotnet run
  3. Navigate to the app and verify the weather forecasts page loads correctly
  4. Open http://localhost:8080 to inspect completed workflows in the Temporal UI

Notes

  • The WeatherForecast model has been moved from SampleDataController into WeatherActivities to be accessible by the workflow. The data shape is identical.
  • Temporal host/namespace are configurable via appsettings.json under Temporal:TargetHost and Temporal:Namespace, defaulting to localhost:7233 and default.
  • The EasyQuery middleware (MapEasyQuery) is left untouched — wrapping it in Temporal would require a larger refactor as noted in the task description.
  • .NET SDK was not available on the build machine, so local compilation was not verified. CI will validate the build.

Link to Devin session: https://app.devin.ai/sessions/789b80c8cdc04eae84abcbc1a849c94f
Requested by: @TheWuster935


Devin Review

Status Commit
⚪ Not started

Run Devin Review

💡 Connect your GitHub account to enable automatic code reviews.

Open in Devin Review (Staging)

- Add Temporalio and Temporalio.Extensions.Hosting NuGet packages
- Create WeatherActivities with durable activity for weather data
- Create WeatherWorkflow to orchestrate weather forecast generation
- Register Temporal client and hosted worker in Startup.cs DI
- Update SampleDataController to start Temporal workflow
- Add docker-compose.yml for local Temporal server and UI
@devin-ai-integration
Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

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.

1 participant