Description
BlueGreenSwitcher and RolloutEngine are fully tested in apps/backend/tests/deployment/rollout-strategy.test.ts but are not used in the live update flow. Deployments currently do a hard cutover, which causes brief downtime on updates.
Requirements and context
- Must be secure, tested, and documented where applicable
- Should stay reviewable and fit the current monorepo structure
- Relevant files:
apps/backend/tests/deployment/rollout-strategy.test.ts, apps/backend/src/services/deployment-update.service.ts, apps/backend/src/services/vercel.service.ts
Suggested execution
- Create branch:
issue-024-wire-blue-green-rollout-strategy
- Keep changes scoped to the issue and reference the task IDs in the PR
Implement changes
- Integrate
RolloutEngine into DeploymentUpdateService.executeUpdatePipeline
- Use
BlueGreenSwitcher to manage standby/active Vercel project aliases during promotion
- Expose a
canaryPercent field in the update record so operators can monitor traffic split
Test and commit
- Add update service tests for: successful promotion, auto-rollback on error rate spike, manual rollback
- Include a sequence diagram in the PR description showing the traffic shift
- Edge case: Vercel alias update fails mid-switch — revert to previous alias automatically
Example commit message
feat(deployments): integrate blue-green rollout into update pipeline
Guidelines
- Prefer small, reviewable PRs
- Keep naming and data contracts consistent with the spec docs
Description
BlueGreenSwitcherandRolloutEngineare fully tested inapps/backend/tests/deployment/rollout-strategy.test.tsbut are not used in the live update flow. Deployments currently do a hard cutover, which causes brief downtime on updates.Requirements and context
apps/backend/tests/deployment/rollout-strategy.test.ts,apps/backend/src/services/deployment-update.service.ts,apps/backend/src/services/vercel.service.tsSuggested execution
issue-024-wire-blue-green-rollout-strategyImplement changes
RolloutEngineintoDeploymentUpdateService.executeUpdatePipelineBlueGreenSwitcherto manage standby/active Vercel project aliases during promotioncanaryPercentfield in the update record so operators can monitor traffic splitTest and commit
Example commit message
Guidelines