Render Tutorials
← All tutorials
beginner ⏱ 62 min 11 steps

Stock research: from flaky to reliable

Fork the workshop baseline on GitHub, edit five files, and make parallel stock research runs reliable on Render.

Prerequisites

  • Comfortable with Git, the terminal, and TypeScript
  • A Render account and a GitHub account
  • Anthropic and Exa API keys for the baseline deploy
  • A Render API key to trigger task runs from the web service (before the final workflow deploy)

Steps

  1. 01 What you'll build Start from the workshop baseline, then make one focused set of code changes so parallel runs become more reliable on Render. 5 min
  2. 02 Baseline: Deploy on Render Fork and clone workshop-demo, deploy your fork on Render, set API keys, and confirm a research run works. 8 min
  3. 03 Baseline: Trace the request path Tour the UI and repo, then follow one ticker from POST /api/research through parallel Exa searches to a streamed memo. 8 min
  4. 04 Why one failure stops the batch Reproduce the failure mode in maybeFail on workshop-demo and see why Promise.all aborts the whole pipeline. 5 min
  5. 05 Install the SDK In your workshop-demo fork, add @renderinc/sdk to the tasks package. 6 min
  6. 06 Register searchOne with retries Wrap searchOne in task() with retries while keeping maybeFail unchanged. 8 min
  7. 07 Wire the task entrypoint Create tasks/src/index.ts so the second service can load searchOne on boot, separate from server/src/index.ts. 5 min
  8. 08 Trigger task runs from the web Add the SDK to server/, replace in-process searchOne with startTask and getTaskRun polling. 10 min
  9. 09 Deploy: Push the web service with dispatch Redeploy your fork with RENDER_API_KEY and dispatch code before creating the second service. 6 min
  10. 10 Workflows: Create the Workflow service Create the Render Workflow from your fork in the Dashboard, set env vars, wire WORKFLOW_SERVICE_SLUG, and verify a full TSLA run. 10 min
  11. 11 Compare and troubleshoot Run the same ticker on workshop-demo vs your deploy, and fix the errors you'll actually hit. 4 min