Diagrid
All categories

Getting Started & Migration

40 questions about getting started & migration.

What does a minimal but realistic durable agent look like when I first run Catalyst locally?

A minimal durable agent starts as a single workflow with two to three steps, such as an LLM call followed by a conditional API action. Catalyst captures each step’s state automatically, so progress survives restarts. The agent focuses on demonstrating deterministic replay of decision logic alongside probabilistic LLM outputs. Boundary: Durable execution never guarantees exactly-once side effects, so idempotency tokens remain your responsibility.

How do I iterate quickly on durable agent logic without deploying to a shared cluster?

Catalyst runs fully on your machine via a local Dapr sidecar, allowing you to execute and debug agent workflows without remote infrastructure. You can simulate failures, inspect state transitions, and verify deterministic replay after code changes. A tight edit-run-debug cycle is possible because workflow state is stored locally. Boundary: State storage is ephemeral by default; persistent state requires an external store for production realism.

My agent is already built with LangChain/LlamaIndex. Can I add durable execution without a rewrite?

You can adopt Catalyst incrementally by wrapping an existing agent’s top-level invocation in a durable workflow. This captures state between major decision points without altering internal framework code. Over time, refactor internal steps into sub-workflows for finer durability. Boundary: Non-deterministic framework internals, such as in-memory caches, may cause replay divergence and need isolation.

Which agent workflows should I migrate to Catalyst first to gain the most value?

Start with long-running, multi-step workflows that have costly failures today, such as document processing pipelines or approval chains. These benefit most from automatic state persistence and retry. Migrate those where partial completion leads to inconsistent state. Boundary: Avoid overly simple stateless calls; durable execution adds persistence overhead with little gain for trivial tasks.

After migrating an agent to Catalyst, how do I confirm its behavior hasn't changed?

Replay historical inputs through the new durable workflow and compare all external outputs and side effects against the original execution logs. Catalyst’s deterministic replay provides a byte-identical recreation for deterministic paths. For non-deterministic LLM calls, compare semantic similarity of responses. Boundary: Replay only verifies deterministic portions; external service changes can still affect outcomes, so pin versions if possible.

What is a safe rollback strategy if a migrated durable agent behaves unexpectedly in production?

Keep the original agent deployment live and use a feature flag to instantly switch traffic back. Catalyst stores state compatible with the original path, so in-flight executions can be failed gracefully and the old agent can pick up from a known checkpoint. This avoids losing work if the durable version encounters unexpected behavior. Boundary: State format changes between versions may prevent seamless handoff; test rollback on a subset first.

What kind of durable agent should I build first to understand Catalyst’s execution model?

Start with an agent that has a few deterministic steps plus a single LLM call, so you can observe how Catalyst replays and resumes. This pattern exposes the core mechanics of state capture and re-execution. Be aware that truly non-deterministic steps like LLM inference require explicit checkpointing to ensure consistent replay.

How can I quickly test and debug Catalyst durable agents locally before pushing to a shared environment?

Use Catalyst’s local development runtime to iterate rapidly on agent logic, with support for step-by-step replay inspection. This allows you to catch nondeterminism and logic errors early. The local loop mirrors production execution semantics, but be aware that external service interactions during replay may introduce drift if not idempotent.

How do I add Catalyst durable execution to an existing LLM framework agent without a full rewrite?

Wrap the agent’s decision function into a Catalyst workflow definition, keeping the original framework code largely intact. Catalyst handles state persistence and retries around each interaction with the LLM or tools. This incremental approach preserves your investment. Note that non-idempotent side effects may require compensating logic to maintain consistency during retries.

What factors help decide which agent workflows to migrate to Catalyst first?

Prioritize workflows with high business impact that currently suffer from unreliable execution or complex manual recovery. These benefit most from durable state and automated retries. A high-value workflow with moderate complexity allows you to demonstrate value with manageable risk. However, avoid workflows where external calls cannot be made idempotent without significant rework initially.

How can I validate that a migrated agent’s behavior hasn’t changed after adopting Catalyst?

Run side-by-side comparison of outputs between the original and migrated agent using a representative test suite, with special attention to error paths and retry scenarios. Catalyst’s deterministic replay helps confirm logical equivalence. Differences may emerge if the original system had implicit state dependencies. Compare results for both normal and failure cases to uncover hidden assumptions.

What’s the rollback approach if a migrated durable agent shows unexpected behavior in production?

Keep the original agent path deployed in parallel, using feature flags to switch traffic back quickly. Catalyst’s durable execution state is isolated, so rolling back means routing new requests to the legacy system while preserving in-flight workflow state for inspection. Be aware that in-flight durable workflows will still run to completion under the migrated logic unless terminated explicitly.

When building my first durable agent locally, how can I step through a workflow execution to understand how Catalyst persists state between steps?

Use your local debugger to set breakpoints inside durable step functions and inspect state snapshots Catalyst creates. Catalyst serializes step outputs and position after each function completes, storing them in a pluggable state store. When a step fails, you can restart from the last persisted state. This debuggability relies on deterministic replay; ensure step logic avoids uncontrolled non-determinism like direct random seeds or clock access.

How do I design the local development environment to simulate realistic partial failures, so I can see durable execution recovering state?

Introduce an in-process fault injector that raises exceptions at specific step boundaries or causes transient I/O errors. Run the agent with a local state store and observe how Catalyst replays from the last checkpoint after each failure. This approach verifies your step idempotency under controlled conditions. Note that this simulates crashes but cannot replicate all production failure modes like network partitions or node outages, which may affect external service interactions.

What pattern should I follow to wrap existing agent logic in durable steps without altering the core business logic or its unit tests?

Use an adapter function that receives the existing agent’s input, calls the original logic, and returns its output, while Catalyst manages the durable lifecycle around it. This thin wrapper keeps business code untouched, so existing tests remain valid. Add separate tests for the wrapper’s integration with Catalyst. Beware that if the original logic has hidden non-determinism (e.g., direct LLM calls with timestamps), the replay may diverge, requiring you to refactor those calls into idempotent steps.

When migrating interdependent agent services, how do I sequence the adoption of durable execution to avoid ordering issues during intermediate states?

Begin with the most downstream service that has the fewest incoming dependencies, making it durable first. This limits the blast radius and allows upstream services to gradually adopt durability without being forced to handle inconsistent states. Verify each service’s durability contract through integration tests that simulate upstream failures. Ensure that durable–non‑durable interactions rely on at-least-once delivery and explicit acknowledgement to prevent double-processing during migration.

After migration, how can I use parallel runs or shadowing to compare the new durable agent's decisions against the old agent's without affecting production?

Run both old and newly durable agents side by side with the same production inputs for a representative period. Divert the durable agent’s outputs to a shadow sink, then compare decision logs for parity. This technique detects divergence without risking side effects. A caveat: differences in execution order or timing due to replay can cause false positives, so focus comparison on logical outcomes rather than intermediate API call sequences.

If a rolled-back durable agent has left partially completed steps, what manual cleanup approaches are safe to use without corrupting future durable execution state?

Use Catalyst’s built-in graceful shutdown combined with a compensating action pattern to revert completed side effects before tearing down state. For orphaned state, delete the execution’s history from the state store using the platform’s management API, ensuring no in-flight references remain. Manual database alterations are risky; rely on the API to avoid dangling pointers. Verify that any compensation itself is idempotent to prevent over-correction during future re-runs.

How do I structure my first Catalyst durable agent project so that the business logic remains testable independently of the durable execution runtime?

Separate agent logic into plain functions and orchestrate them with Catalyst workflows to keep unit testing lightweight. Encapsulate business decisions in pure handlers that receive state, and use the workflow definition only for ordering steps and error recovery; test handlers with mocks. This separation allows fast local iteration without the execution engine. Be aware that subtle coupling can arise if workflow context leaks into handlers, so review shared objects carefully.

When I roll back a migrated durable agent, what verification steps confirm that no in-flight executions are still partially persisted in the new state store before I fully decommission the old system?

Query the Catalyst state store for outstanding workflow instances after disabling new invocations, ensuring no partial executions remain before decommissioning. Drain active runs by stopping ingress, then inspect the store with management APIs to list incomplete workflows, and wait for them to finish or safe-terminate. Incomplete workflows with human-in-the-loop steps may require appropriate signaling before termination; verify that task queues are empty. Forced cancellation can risk inconsistent side-effects if steps are not idempotent.

How do I pick my first workflow to migrate to Catalyst?

Start with a low-risk, non-critical workflow for your first Catalyst migration to minimize overall disruption for your team. Carefully prioritize your workflows that have clear success metrics and limited cross-team dependencies, and well-documented steps to simplify simple validation efforts, then test in your staging environment first before moving to gradual production-like deployments. Remember that durable execution does not offer exact-once delivery without additional protective safeguards.

How can I run old and new engines side by side during migration?

Parallel dual-engine deployments offer a safe way to validate Catalyst during migration without disrupting live production workloads. Route a small subset of traffic to Catalyst while keeping most work on your existing production engine, log all outputs for systematic result comparison, and use regular shared monitoring to track performance across both systems. Note that observability is not an audit record, so you may need to perform manual cross-checks as needed.

Should I move in-flight work during Catalyst migration?

Your decision to move in-flight work during a Catalyst migration depends on your specific timeline and workflow requirements. If you can complete all pending work before the official cutover, avoid transitioning in-flight tasks to reduce overall complexity; if immediate cutover is necessary, use Catalyst’s built-in tools to resume interrupted runs after the switch. Note that containment is not prevention, so plan for potential partial failures during the broader migration transition period.

What checks should I complete before cutting over to Catalyst?

Completing targeted pre-cutover checks helps mitigate unexpected operational issues when transitioning fully to the Catalyst platform. Next, validate that your staging environments fully match production configurations, confirm all key external dependencies work correctly with Catalyst, run comprehensive full end-to-end tests on your migrated workflows, and verify critical monitoring and alerting are properly configured for the new production deployment. Importantly, durable execution does not offer exact-once delivery without supplementary safeguards.

How do I plan a safe rollback for Catalyst migration?

Prioritizing a fully tested rollback plan is critical for safe Catalyst migration. First, define clear and specific rollback triggers, document detailed step-by-step revert procedures to your existing production engine, carefully test the full rollback workflow in staging environments multiple times, and secure necessary pre-configured rollback resources ahead of any planned cutover. Remember that observability is not an audit record, so track all key migration changes accurately to uphold strong accountability.

How should I sequence migration across multiple teams?

Start small and scale gradually when sequencing cross-team Catalyst migrations. Begin with early-stage low-risk, low-stakes workflows to build internal expertise, share key actionable lessons learned across all relevant groups, coordinate aligned cross-team timelines to avoid overlapping resource strain, and schedule regular, structured cross-team syncs to align on shared, standardized best practices and resolve critical issues quickly and efficiently. Note that durable execution does not offer exact-once delivery without supplementary safeguards.

What’s a safe first workflow to migrate to Catalyst’s durable execution?

Start with standalone, low-stakes workflows that have clear, observable failure modes. Run them side-by-side with your existing engine to compare behavior without disrupting production traffic. Validate that Catalyst handles retries and state persistence as expected, then confirm core functionality works as intended. Note that durable execution does not provide exactly-once delivery semantics, so adjust workflows relying on strict single-run semantics.

How do I manage in-flight work during Catalyst migration?

Prioritize resolving in-flight work before full cutover to avoid conflicting state between platforms. Route new work to Catalyst incrementally, and flag existing in-flight tasks to finish on the original engine or migrate their state safely. Use observability tools to track both workload streams without mixing execution contexts. Note that observability data alone is not a full audit record, so cross-check state consistency for critical tasks.

What checks should I run before cutting over to Catalyst?

Run end-to-end validation tests for your migrated workflows before cutting over fully. Test edge cases like failed external calls, timed-out steps, and partial execution to ensure Catalyst handles recovery as expected. Compare output against your original engine to confirm consistent results across both platforms. Keep in mind that containment of workflow failures does not prevent all downstream impacts, so test cross-service dependencies thoroughly.

How do I plan a rollback for my Catalyst migration?

Build a clear rollback plan before starting your migration to reverse changes quickly if issues arise. Document rollback triggers like elevated error rates or unexpected workflow behavior, and set up reverse routing to send traffic back to your original engine. Test the rollback process with non-production workloads first to validate steps. Keep in mind that durable execution does not offer guaranteed exactly-once delivery, so account for duplicate work during rollback operations.

What common mistakes happen in the first month post-migration?

Commonly observed first-month mistakes include skipping side-by-side testing and neglecting to account for retry behavior differences. Teams often overlook unhandled external service failures, leading to unexpected workflow loops or duplicated work. Failing to align state between old and new engines leads to inconsistent output across platforms. Keep in mind that durable execution does not provide exactly-once delivery semantics, so plan for duplicate task handling in your workflows.

What steps should I take to verify my first migrated workflow is production-ready?

Your first critical, necessary step to ready a migrated workflow for production is confirming it aligns with your existing production workload behaviors. Run limited, targeted side-by-side test traffic, compare detailed execution traces and core measurable business outcomes, and verify error handling and retry logic align with your specified business requirements. Note that durable execution does not provide exactly-once delivery semantics, so plan ahead proactively for duplicate run checks.

How can I safely migrate in-flight workflow work without disruption?

You can safely migrate in-flight workflow work without disruption by following structured, validated operational steps. First pause or carefully checkpoint ongoing work to avoid data inconsistencies, map existing workflow state to the durable execution model, validate state transfer with sample in-progress workflow runs, then test full resumption of work after migration. Keep in mind observability tools for durable execution are not audit records, so retain original state logs as needed.

How do I confirm my workflow cutover to Catalyst was successful?

Your Catalyst workflow cutover counts as successful when you complete targeted validation steps tied to specific operational and business goals. Compare production traffic patterns between your prior production engine and Catalyst, validate all workflow steps run without unexpected failures, confirm alerting and monitoring function as configured, and check that workflows deliver intended business outcomes. Keep in mind durable execution containment is not prevention, so actively monitor for unintended workflow leaks.

What steps should I take to test my Catalyst migration rollback plans?

Following a staged, validation-focused sequence can effectively test your Catalyst migration rollback plans. Begin with dry-run tests on a non-critical staging workflow, simulate a typical failure scenario, execute your rollback steps, then verify workloads revert to the original engine, that no data loss occurs, and that user access is restored. Keep in mind that durable execution does not eliminate all migration risks, so keep rollback steps simple and well-documented.

How can I validate cross-team migration sequencing for Catalyst deployments?

You can effectively validate cross-team Catalyst deployment migration sequencing by strictly sticking to your planned sequencing order while avoiding costly disruptions. Use shared cross-team dependency checks to confirm key upstream workflows finish before downstream dependent ones, regularly track detailed team-specific progress metrics, and resolve any identified critical bottlenecks early. Remember that durable execution observability is not an audit record, so track team milestones using separate dedicated logs.

What common migration mistakes should I watch for in the first month post-cutover?

Prioritize addressing common post-cutover migration mistakes during your first month to avoid unnecessary post-launch disruptions and instability. Watch for unhandled retries, missed state transfers, and misconfigured alerts; review workflow execution logs weekly, cross-check with original workload behavior, and validate that external tool integrations work as expected. Note that durable execution is not exactly-once delivery, so continue monitoring for unintended duplicate workflow runs.

Which initial workflow should I migrate to Catalyst’s durable execution first?

A suitable initial workflow for migration is a low-risk, non-critical production workflow with clear success metrics. Start by auditing your existing workflows to pick one with limited cross-team dependencies, where failures are unlikely to disrupt core business operations, and where you can easily compare pre and post migration results. Avoid workflows with extremely tight real-time latency constraints as initial candidates.

How can I validate Catalyst fits my existing agent workload architecture?

Catalyst is well-suited for most existing agent workload architectures, but first validate alignment with your specific tooling and workflow patterns. Audit your current production stack to map how durable execution integrates with monitoring, observability, and CI/CD pipelines, and confirm it supports mixed deterministic and probabilistic work. Note that minor workflow orchestration adjustments may be needed to fully leverage its capabilities.

How do I safely test a migrated workflow prior to full production cutover?

A reliable way to test a migrated workflow before full cutover is to use isolated shadow testing with limited test traffic. Route a small volume of non-critical test traffic to the Catalyst-hosted workflow, compare outputs against your existing engine without altering live user traffic, and validate consistency across all workflow steps. Keep in mind that shadow testing does not capture in-flight work state changes, so it is not suitable for long-running ongoing executions.