Skip to content

Conversation

@affandar
Copy link
Owner

@affandar affandar commented Jan 5, 2026

Summary

Adds a practical guide for managing versioned orchestrations in production.

What's Included

  • Code Organization Pattern - Keeping NAME constants stable, version suffix functions, trace logging with version prefix
  • Registration Pattern - register_typed() vs register_versioned_typed() examples
  • Version Upgrade Timing (Critical) - Explains that upgrades happen at continue_as_new time, not server restart, with timeline example
  • Best Practices Checklist - DOs and DON'Ts for versioning
  • Version Info Flow - How version info propagates from Duroxide → Management API → UI
  • Common Scenarios - Hot-fixes, state migration, version pinning

Why This Is Needed

The existing migration-guide.md covers breaking changes between Duroxide versions, but doesn't cover practical patterns for versioning your own orchestrations in production. This came from real-world experience implementing long-running orchestrations that needed version upgrades without disrupting in-flight instances.


Note

Introduces versioning guidance for long-lived orchestrations and how upgrades occur safely.

  • Adds Orchestration Versioning section to ORCHESTRATION-GUIDE.md covering registration (register_typed vs register_versioned_typed), upgrade timing at continue_as_new, and concise best practices
  • Creates production-patterns.md with detailed patterns: code organization by stable NAME + version-suffixed functions, registry setup, upgrade timing timeline, DO/DON'T checklist, version info flow (provider → client → API → UI), and practical scenarios (hot-fix, state migration, version pinning)
  • Updates table of contents in ORCHESTRATION-GUIDE.md to include the new sections and link to production-patterns.md

Written by Cursor Bugbot for commit 09ff705. This will update automatically on new commits. Configure here.

Affan Dar added 3 commits January 6, 2026 01:47
Adds a practical guide for managing versioned orchestrations in production,
covering:
- Code organization patterns (NAME constants, version suffix functions)
- Registration patterns (register_typed vs register_versioned_typed)
- Version upgrade timing (critical: happens at continue_as_new, not restart)
- Best practices checklist
- Common scenarios (hot-fixes, state migration, pinning)
- Added new 'Orchestration Versioning' section with key concepts
- Updated Table of Contents
- Links to detailed versioning-best-practices.md
- Renamed versioning-best-practices.md to production-patterns.md
- Added new section: Eternal System Orchestrations
  - The startup pattern: check state → delete if terminal → start fresh
  - Why each step matters (idempotency, force delete, graceful degradation)
  - Integration with server startup sequence
  - Writing eternal orchestrations with continue_as_new
- Added Scenario 4: System orchestration recovery
- Updated Best Practices checklist with eternal orchestration patterns
- Updated ORCHESTRATION-GUIDE.md reference
@affandar affandar closed this Jan 6, 2026
@affandar affandar deleted the docs/versioning-best-practices branch January 6, 2026 00:57
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.

2 participants