Stabilize

User Guide

  • Getting Started
    • Installation
    • Quick Start
    • Next Steps
  • Core Concepts
    • Architecture
    • Data Model
      • Workflow
      • StageExecution
      • TaskExecution
    • The Loop
    • Event Sourcing
  • Tasks
    • The Task Interface
    • Built-in Tasks
      • ShellTask
      • PythonTask
      • HTTPTask
      • DockerTask
    • Advanced Task Features
      • Skippable Tasks
      • Retryable Tasks
      • Task Cleanup
  • Stage Data Flow
    • Overview
    • Declaring Dependencies
    • Producing Outputs
      • Using TaskResult
      • Using PythonTask
      • Using ShellTask
    • Accessing Upstream Outputs
      • Basic Access
      • Accessing Shell Output
      • Multiple Upstream Stages
    • Output Key Conventions
    • How It Works Internally
    • Key Collision Warning
    • Best Practices
  • Flow Control
    • Basic Patterns
      • Sequence (WCP-1)
      • Parallel Split / AND-Split (WCP-2)
      • Synchronization / AND-Join (WCP-3)
      • Exclusive Choice / XOR-Split (WCP-4)
      • Simple Merge / XOR-Join (WCP-5)
    • Advanced Branching Patterns
      • OR-Split / Multi-Choice (WCP-6)
      • OR-Join / Structured Synchronizing Merge (WCP-7)
      • Multi-Merge (WCP-8)
      • Discriminator / 1-out-of-N Join (WCP-9)
      • N-of-M Partial Join (WCP-30)
    • State-Based Patterns
      • Deferred Choice (WCP-16)
      • Milestone Gating (WCP-18)
      • Mutual Exclusion / Critical Section (WCP-17, 39, 40)
    • Cancellation Patterns
      • Cancel Task (WCP-19)
      • Cancel Case (WCP-20)
      • Cancel Region (WCP-25)
    • Trigger Patterns (Signals)
      • TaskResult.suspend()
      • Transient Trigger (WCP-23)
      • Persistent Trigger (WCP-24)
    • Iteration Patterns
      • Arbitrary Cycles (WCP-10)
      • Structured Loops (WCP-21)
      • Recursion / Sub-Workflows (WCP-22)
    • Multiple Instance Patterns
      • Fixed Count (WCP-12, 13)
      • Runtime Count from Context (WCP-14)
      • Collection-Based Instances
      • Dynamic Instances (WCP-15)
      • N-of-M with Multiple Instances (WCP-34)
    • Synthetic Stages
      • SyntheticStageOwner Enum
      • Creating Synthetic Stages
      • StageDefinitionBuilder
      • Registering Builders
      • Execution Order
    • Concurrency Limits
    • Dynamic Routing
      • TaskResult.jump_to()
      • Jump Count Limiting
      • Stateful Retries
    • StageExecution Control-Flow Fields Reference
    • Key Files
  • Persistence
    • SQLite
    • PostgreSQL
  • Resilience
    • Optimistic Locking
      • Phase-Aware Optimistic Locking
      • State Snapshots
      • StartStage Race Condition
    • Atomic Deduplication
      • Bloom Filter Deduplication
    • Circuit Breakers
    • Bulkheads
    • Finalizers and Cleanup
    • Configuration Versioning
    • Crash Recovery
    • DAG Readiness Evaluation
    • Key Files
  • Error Handling
    • Error Hierarchy
    • Transient vs Permanent Errors
    • Error Codes
    • Error Chain Traversal
    • Error Truncation
    • Custom Task Errors
    • Error Classification
    • Best Practices
    • Key Files
  • Event Sourcing
    • Overview
    • Quick Setup
    • Event Types
    • Subscribing to Events
    • Projections
    • Event Replay
    • Event Stores
    • Snapshots

Examples

  • Simple Pipeline
  • Parallel Processing
  • Shell Commands
  • HTTP Requests

API Reference

  • Models
    • Core Models
      • WorkflowType
        • WorkflowType.PIPELINE
        • WorkflowType.ORCHESTRATION
      • Trigger
        • Trigger.type
        • Trigger.user
        • Trigger.parameters
        • Trigger.artifacts
        • Trigger.payload
        • Trigger.to_dict()
        • Trigger.from_dict()
      • PausedDetails
        • PausedDetails.paused_by
        • PausedDetails.pause_time
        • PausedDetails.resume_time
        • PausedDetails.paused_ms
        • PausedDetails.is_paused
      • Workflow
        • Workflow.id
        • Workflow.type
        • Workflow.application
        • Workflow.name
        • Workflow.status
        • Workflow.stages
        • Workflow.trigger
        • Workflow.start_time
        • Workflow.end_time
        • Workflow.start_time_expiry
        • Workflow.is_canceled
        • Workflow.canceled_by
        • Workflow.cancellation_reason
        • Workflow.paused
        • Workflow.pipeline_config_id
        • Workflow.is_limit_concurrent
        • Workflow.max_concurrent_executions
        • Workflow.keep_waiting_pipelines
        • Workflow.origin
        • Workflow.id
        • Workflow.type
        • Workflow.application
        • Workflow.name
        • Workflow.status
        • Workflow.stages
        • Workflow.context
        • Workflow.trigger
        • Workflow.start_time
        • Workflow.end_time
        • Workflow.start_time_expiry
        • Workflow.is_canceled
        • Workflow.canceled_by
        • Workflow.cancellation_reason
        • Workflow.paused
        • Workflow.pipeline_config_id
        • Workflow.is_limit_concurrent
        • Workflow.max_concurrent_executions
        • Workflow.keep_waiting_pipelines
        • Workflow.origin
        • Workflow.config_version
        • Workflow.add_stage()
        • Workflow.remove_stage()
        • Workflow.cleanup()
        • Workflow.stage_by_id()
        • Workflow.stage_by_ref_id()
        • Workflow.initial_stages()
        • Workflow.top_level_stages()
        • Workflow.get_context()
        • Workflow.update_status()
        • Workflow.cancel()
        • Workflow.pause()
        • Workflow.resume()
        • Workflow.paused_duration_relative_to()
        • Workflow.create()
        • Workflow.create_orchestration()
      • JoinType
        • JoinType.AND
        • JoinType.OR
        • JoinType.MULTI_MERGE
        • JoinType.DISCRIMINATOR
        • JoinType.N_OF_M
      • SplitType
        • SplitType.AND
        • SplitType.OR
      • StageExecution
        • StageExecution.id
        • StageExecution.ref_id
        • StageExecution.type
        • StageExecution.name
        • StageExecution.status
        • StageExecution.context
        • StageExecution.outputs
        • StageExecution.tasks
        • StageExecution.requisite_stage_ref_ids
        • StageExecution.parent_stage_id
        • StageExecution.synthetic_stage_owner
        • StageExecution.start_time
        • StageExecution.end_time
        • StageExecution.start_time_expiry
        • StageExecution.scheduled_time
        • StageExecution.allow_sibling_stages_to_continue_on_failure
        • StageExecution.cancel_region
        • StageExecution.cleanup()
        • StageExecution.cleanup_on_failure
        • StageExecution.continue_pipeline_on_failure
        • StageExecution.create()
        • StageExecution.create_synthetic()
        • StageExecution.deferred_choice_group
        • StageExecution.determine_status()
        • StageExecution.end_time
        • StageExecution.execution
        • StageExecution.failure_status()
        • StageExecution.first_task()
        • StageExecution.has_execution()
        • StageExecution.has_tasks()
        • StageExecution.join_threshold
        • StageExecution.join_type
        • StageExecution.mi_config
        • StageExecution.milestone_ref_id
        • StageExecution.milestone_status
        • StageExecution.mutex_key
        • StageExecution.name
        • StageExecution.next_task()
        • StageExecution.parent_stage_id
        • StageExecution.phase_version
        • StageExecution.ref_id
        • StageExecution.scheduled_time
        • StageExecution.set_execution_strong()
        • StageExecution.should_fail_pipeline()
        • StageExecution.split_type
        • StageExecution.start_time
        • StageExecution.start_time_expiry
        • StageExecution.state_snapshot()
        • StageExecution.status
        • StageExecution.synthetic_stage_owner
        • StageExecution.type
        • StageExecution.version
        • StageExecution.id
        • StageExecution.context
        • StageExecution.outputs
        • StageExecution.tasks
        • StageExecution.requisite_stage_ref_ids
        • StageExecution.finalizer_names
        • StageExecution.split_conditions
      • SyntheticStageOwner
        • SyntheticStageOwner.STAGE_BEFORE
        • SyntheticStageOwner.STAGE_AFTER
      • TaskExecution
        • TaskExecution.id
        • TaskExecution.name
        • TaskExecution.implementing_class
        • TaskExecution.status
        • TaskExecution.start_time
        • TaskExecution.end_time
        • TaskExecution.stage_start
        • TaskExecution.stage_end
        • TaskExecution.loop_start
        • TaskExecution.loop_end
        • TaskExecution.task_exception_details
        • TaskExecution.id
        • TaskExecution.name
        • TaskExecution.implementing_class
        • TaskExecution.status
        • TaskExecution.start_time
        • TaskExecution.end_time
        • TaskExecution.stage_start
        • TaskExecution.stage_end
        • TaskExecution.loop_start
        • TaskExecution.loop_end
        • TaskExecution.task_exception_details
        • TaskExecution.version
        • TaskExecution.stage
        • TaskExecution.set_stage_strong()
        • TaskExecution.has_stage()
        • TaskExecution.is_stage_start
        • TaskExecution.is_stage_end
        • TaskExecution.is_loop_start
        • TaskExecution.is_loop_end
        • TaskExecution.cleanup()
        • TaskExecution.set_exception_details()
        • TaskExecution.phase_version
        • TaskExecution.state_snapshot()
        • TaskExecution.create()
      • WorkflowStatus
        • WorkflowStatus.NOT_STARTED
        • WorkflowStatus.RUNNING
        • WorkflowStatus.PAUSED
        • WorkflowStatus.SUSPENDED
        • WorkflowStatus.SUCCEEDED
        • WorkflowStatus.FAILED_CONTINUE
        • WorkflowStatus.TERMINAL
        • WorkflowStatus.CANCELED
        • WorkflowStatus.REDIRECT
        • WorkflowStatus.STOPPED
        • WorkflowStatus.SKIPPED
        • WorkflowStatus.BUFFERED
        • WorkflowStatus.is_complete
        • WorkflowStatus.is_halt
        • WorkflowStatus.is_successful
        • WorkflowStatus.is_failure
        • WorkflowStatus.is_skipped
        • WorkflowStatus.is_dirty
      • InvalidStateTransitionError
      • can_transition()
      • validate_transition()
    • Control-Flow Pattern Models
      • MultiInstanceConfig
        • MultiInstanceConfig.count
        • MultiInstanceConfig.count_from_context
        • MultiInstanceConfig.sync_on_complete
        • MultiInstanceConfig.allow_dynamic
        • MultiInstanceConfig.collection_from_context
        • MultiInstanceConfig.join_threshold
        • MultiInstanceConfig.cancel_remaining
        • MultiInstanceConfig.count
        • MultiInstanceConfig.count_from_context
        • MultiInstanceConfig.sync_on_complete
        • MultiInstanceConfig.allow_dynamic
        • MultiInstanceConfig.collection_from_context
        • MultiInstanceConfig.join_threshold
        • MultiInstanceConfig.cancel_remaining
        • MultiInstanceConfig.to_dict()
        • MultiInstanceConfig.from_dict()
      • ExpressionError
      • evaluate_expression()
  • Handlers
    • Core Handlers
      • MessageHandler
        • MessageHandler.message_type
        • MessageHandler.handle()
      • StabilizeHandler
        • StabilizeHandler.queue
        • StabilizeHandler.repository
        • StabilizeHandler.retry_delay
        • StabilizeHandler.handler_config
        • StabilizeHandler.event_recorder
        • StabilizeHandler.set_event_context()
        • StabilizeHandler.with_execution()
        • StabilizeHandler.with_stage()
        • StabilizeHandler.with_task()
        • StabilizeHandler.start_next()
        • StabilizeHandler.current_time_millis()
        • StabilizeHandler.retry_on_concurrency_error()
        • StabilizeHandler.set_stage_status()
        • StabilizeHandler.set_task_status()
        • StabilizeHandler.set_workflow_status()
      • StartWorkflowHandler
        • StartWorkflowHandler.message_type
        • StartWorkflowHandler.handle()
      • StartWaitingWorkflowsHandler
        • StartWaitingWorkflowsHandler.message_type
        • StartWaitingWorkflowsHandler.handle()
      • StartStageHandler
        • StartStageHandler.handle()
        • StartStageHandler.message_type
      • SkipStageHandler
        • SkipStageHandler.message_type
        • SkipStageHandler.handle()
      • CancelStageHandler
        • CancelStageHandler.message_type
        • CancelStageHandler.handle()
      • ContinueParentStageHandler
        • ContinueParentStageHandler.message_type
        • ContinueParentStageHandler.handle()
      • StartTaskHandler
        • StartTaskHandler.message_type
        • StartTaskHandler.handle()
      • RunTaskHandler
        • RunTaskHandler.handle()
        • RunTaskHandler.message_type
      • CompleteTaskHandler
        • CompleteTaskHandler.message_type
        • CompleteTaskHandler.handle()
      • CompleteStageHandler
        • CompleteStageHandler.handle()
        • CompleteStageHandler.message_type
      • CompleteWorkflowHandler
        • CompleteWorkflowHandler.message_type
        • CompleteWorkflowHandler.handle()
    • Control-Flow Pattern Handlers
      • SignalStageHandler
        • SignalStageHandler.message_type
        • SignalStageHandler.handle()
      • CancelRegionHandler
        • CancelRegionHandler.message_type
        • CancelRegionHandler.handle()
      • AddMultiInstanceHandler
        • AddMultiInstanceHandler.message_type
        • AddMultiInstanceHandler.handle()
  • Persistence
    • WorkflowStore
      • WorkflowStore.add_stage()
      • WorkflowStore.cancel()
      • WorkflowStore.cleanup_old_processed_messages()
      • WorkflowStore.count_by_application()
      • WorkflowStore.delete()
      • WorkflowStore.exists()
      • WorkflowStore.get_downstream_stages()
      • WorkflowStore.get_merged_ancestor_outputs()
      • WorkflowStore.get_synthetic_stages()
      • WorkflowStore.get_upstream_stages()
      • WorkflowStore.is_healthy()
      • WorkflowStore.is_message_processed()
      • WorkflowStore.mark_message_processed()
      • WorkflowStore.pause()
      • WorkflowStore.remove_stage()
      • WorkflowStore.resume()
      • WorkflowStore.retrieve()
      • WorkflowStore.retrieve_by_application()
      • WorkflowStore.retrieve_by_pipeline_config_id()
      • WorkflowStore.retrieve_execution_summary()
      • WorkflowStore.retrieve_stage()
      • WorkflowStore.store()
      • WorkflowStore.store_stage()
      • WorkflowStore.transaction()
      • WorkflowStore.update_status()
    • WorkflowCriteria
      • WorkflowCriteria.page_size
      • WorkflowCriteria.start_time_after
      • WorkflowCriteria.start_time_before
      • WorkflowCriteria.statuses
    • WorkflowNotFoundError
    • StoreTransaction
      • StoreTransaction.is_atomic
      • StoreTransaction.mark_message_processed()
      • StoreTransaction.push_message()
      • StoreTransaction.store_stage()
      • StoreTransaction.update_workflow_status()
    • NoOpTransaction
      • NoOpTransaction.mark_message_processed()
      • NoOpTransaction.push_message()
      • NoOpTransaction.store_stage()
      • NoOpTransaction.update_workflow_status()
    • SqliteWorkflowStore
      • SqliteWorkflowStore.cleanup_old_processed_messages()
      • SqliteWorkflowStore.close()
      • SqliteWorkflowStore.is_healthy()
      • SqliteWorkflowStore.is_message_processed()
      • SqliteWorkflowStore.mark_message_processed()
      • SqliteWorkflowStore.transaction()
    • PostgresWorkflowStore
      • PostgresWorkflowStore.add_stage()
      • PostgresWorkflowStore.cancel()
      • PostgresWorkflowStore.cleanup_old_processed_messages()
      • PostgresWorkflowStore.close()
      • PostgresWorkflowStore.delete()
      • PostgresWorkflowStore.get_downstream_stages()
      • PostgresWorkflowStore.get_merged_ancestor_outputs()
      • PostgresWorkflowStore.get_synthetic_stages()
      • PostgresWorkflowStore.get_upstream_stages()
      • PostgresWorkflowStore.is_healthy()
      • PostgresWorkflowStore.is_message_processed()
      • PostgresWorkflowStore.mark_message_processed()
      • PostgresWorkflowStore.pause()
      • PostgresWorkflowStore.remove_stage()
      • PostgresWorkflowStore.resume()
      • PostgresWorkflowStore.retrieve()
      • PostgresWorkflowStore.retrieve_by_application()
      • PostgresWorkflowStore.retrieve_by_pipeline_config_id()
      • PostgresWorkflowStore.retrieve_execution_summary()
      • PostgresWorkflowStore.retrieve_stage()
      • PostgresWorkflowStore.store()
      • PostgresWorkflowStore.store_stage()
      • PostgresWorkflowStore.transaction()
      • PostgresWorkflowStore.update_status()
  • Tasks
    • Built-in Tasks
      • Task
        • Task.execute()
        • Task.on_timeout()
        • Task.on_cancel()
        • Task.on_cleanup()
        • Task.aliases
      • RetryableTask
        • RetryableTask.get_timeout()
        • RetryableTask.get_backoff_period()
        • RetryableTask.get_dynamic_timeout()
        • RetryableTask.get_dynamic_backoff_period()
      • OverridableTimeoutRetryableTask
        • OverridableTimeoutRetryableTask.get_dynamic_timeout()
      • SkippableTask
        • SkippableTask.is_enabled()
        • SkippableTask.execute()
        • SkippableTask.do_execute()
      • CallableTask
        • CallableTask.execute()
        • CallableTask.name
      • NoOpTask
        • NoOpTask.execute()
      • WaitTask
        • WaitTask.get_timeout()
        • WaitTask.get_backoff_period()
        • WaitTask.execute()
      • TaskResult
        • TaskResult.status
        • TaskResult.context
        • TaskResult.outputs
        • TaskResult.target_stage_ref_id
        • TaskResult.status
        • TaskResult.context
        • TaskResult.outputs
        • TaskResult.target_stage_ref_id
        • TaskResult.success()
        • TaskResult.running()
        • TaskResult.terminal()
        • TaskResult.failed_continue()
        • TaskResult.skipped()
        • TaskResult.canceled()
        • TaskResult.stopped()
        • TaskResult.suspend()
        • TaskResult.redirect()
        • TaskResult.jump_to()
        • TaskResult.builder()
        • TaskResult.merge_outputs()
      • TaskResultBuilder
        • TaskResultBuilder.context()
        • TaskResultBuilder.outputs()
        • TaskResultBuilder.add_context()
        • TaskResultBuilder.add_output()
        • TaskResultBuilder.build()
      • ShellTask
        • ShellTask.execute()
      • PythonTask
        • PythonTask.SCRIPT_WRAPPER
        • PythonTask.MODULE_WRAPPER
        • PythonTask.RESULT_START_MARKER
        • PythonTask.RESULT_END_MARKER
        • PythonTask.execute()
      • HTTPTask
        • HTTPTask.execute()
      • DockerTask
        • DockerTask.SUPPORTED_ACTIONS
        • DockerTask.execute()
    • Control-Flow Pattern Tasks
      • SubWorkflowTask
        • SubWorkflowTask.aliases
        • SubWorkflowTask.get_timeout()
        • SubWorkflowTask.get_backoff_period()
        • SubWorkflowTask.execute()
    • Stage Builders
      • MultiInstanceBuilder
        • MultiInstanceBuilder.create_fixed()
        • MultiInstanceBuilder.create_from_context()
        • MultiInstanceBuilder.create_from_collection()
        • MultiInstanceBuilder.create_dynamic()
      • LoopBuilder
        • LoopBuilder.while_loop()
        • LoopBuilder.repeat_until()
  • Queue
    • MessageHandler
      • MessageHandler.handle()
      • MessageHandler.message_type
    • QueueProcessor
      • QueueProcessor.active_count
      • QueueProcessor.is_running
      • QueueProcessor.is_stopping
      • QueueProcessor.process_all()
      • QueueProcessor.process_one()
      • QueueProcessor.register_handler()
      • QueueProcessor.register_handler_func()
      • QueueProcessor.replace_handler()
      • QueueProcessor.request_stop()
      • QueueProcessor.start()
      • QueueProcessor.stop()
    • QueueProcessorConfig
      • QueueProcessorConfig.enable_deduplication
      • QueueProcessorConfig.from_handler_config()
      • QueueProcessorConfig.max_workers
      • QueueProcessorConfig.poll_frequency_ms
      • QueueProcessorConfig.retry_delay
      • QueueProcessorConfig.stop_on_error
    • SynchronousQueueProcessor
      • SynchronousQueueProcessor.push_and_process()
      • SynchronousQueueProcessor.start()
      • SynchronousQueueProcessor.stop()
    • Message
      • Message.message_id
      • Message.created_at
      • Message.attempts
      • Message.max_attempts
      • Message.last_error
      • Message.last_error_type
      • Message.copy_with_attempts()
      • Message.set_error_context()
    • WorkflowLevel
      • WorkflowLevel.execution_type
      • WorkflowLevel.execution_id
    • StartWorkflow
    • CompleteWorkflow
      • CompleteWorkflow.retry_count
      • CompleteWorkflow.retry_count
    • CancelWorkflow
      • CancelWorkflow.user
      • CancelWorkflow.reason
    • StartWaitingWorkflows
      • StartWaitingWorkflows.pipeline_config_id
      • StartWaitingWorkflows.purge_queue
    • StageLevel
      • StageLevel.stage_id
      • StageLevel.retry_count
      • StageLevel.stage_id
      • StageLevel.retry_count
      • StageLevel.from_execution_level()
    • StartStage
    • CompleteStage
    • SkipStage
    • CancelStage
    • RestartStage
    • ResumeStage
    • ContinueParentStage
      • ContinueParentStage.phase
    • JumpToStage
      • JumpToStage.target_stage_ref_id
      • JumpToStage.jump_context
      • JumpToStage.jump_outputs
      • JumpToStage.target_stage_ref_id
      • JumpToStage.jump_context
      • JumpToStage.jump_outputs
    • SignalStage
      • SignalStage.signal_name
      • SignalStage.signal_data
      • SignalStage.persistent
      • SignalStage.signal_name
      • SignalStage.signal_data
      • SignalStage.persistent
    • CancelRegion
      • CancelRegion.region
      • CancelRegion.region
    • AddMultiInstance
      • AddMultiInstance.instance_context
      • AddMultiInstance.instance_context
    • TaskLevel
      • TaskLevel.task_id
      • TaskLevel.from_stage_level()
    • StartTask
    • RunTask
      • RunTask.task_type
    • CompleteTask
      • CompleteTask.status
      • CompleteTask.original_status
    • PauseTask
    • InvalidWorkflowId
    • InvalidStageId
    • InvalidTaskId
    • InvalidTaskType
      • InvalidTaskType.task_type_name
    • get_message_type_name()
    • create_message_from_dict()
  • Events API
    • Configuration
      • configure_event_sourcing()
      • configure_event_bus()
      • configure_event_recorder()
    • Base Types
      • Event
        • Event.event_id
        • Event.event_type
        • Event.timestamp
        • Event.sequence
        • Event.entity_type
        • Event.entity_id
        • Event.workflow_id
        • Event.version
        • Event.data
        • Event.metadata
        • Event.with_sequence()
        • Event.to_dict()
        • Event.from_dict()
      • EventType
        • EventType.WORKFLOW_CREATED
        • EventType.WORKFLOW_STARTED
        • EventType.WORKFLOW_COMPLETED
        • EventType.WORKFLOW_FAILED
        • EventType.WORKFLOW_CANCELED
        • EventType.WORKFLOW_PAUSED
        • EventType.WORKFLOW_RESUMED
        • EventType.STAGE_STARTED
        • EventType.STAGE_COMPLETED
        • EventType.STAGE_FAILED
        • EventType.STAGE_SKIPPED
        • EventType.STAGE_CANCELED
        • EventType.TASK_STARTED
        • EventType.TASK_COMPLETED
        • EventType.TASK_FAILED
        • EventType.TASK_RETRIED
        • EventType.STATUS_CHANGED
        • EventType.CONTEXT_UPDATED
        • EventType.OUTPUTS_UPDATED
        • EventType.JUMP_EXECUTED
      • EntityType
        • EntityType.WORKFLOW
        • EntityType.STAGE
        • EntityType.TASK
      • EventMetadata
        • EventMetadata.correlation_id
        • EventMetadata.causation_id
        • EventMetadata.actor
        • EventMetadata.source_handler
        • EventMetadata.to_dict()
        • EventMetadata.from_dict()
    • Event Bus
      • EventBus
        • EventBus.subscribe()
        • EventBus.unsubscribe()
        • EventBus.enable_subscription()
        • EventBus.disable_subscription()
        • EventBus.publish()
        • EventBus.publish_batch()
        • EventBus.on_error()
        • EventBus.stats
        • EventBus.get_subscriptions()
        • EventBus.shutdown()
        • EventBus.reset()
      • Subscription
        • Subscription.matches()
      • SubscriptionMode
        • SubscriptionMode.SYNC
        • SubscriptionMode.ASYNC
      • EventBusStats
      • get_event_bus()
      • reset_event_bus()
    • Event Recorder
      • EventRecorder
      • get_event_recorder()
      • set_event_context()
      • get_event_metadata()
    • Event Stores
      • EventStore
        • EventStore.append()
        • EventStore.append_batch()
        • EventStore.get_events()
        • EventStore.get_events_for_entity()
        • EventStore.get_events_for_workflow()
        • EventStore.get_current_sequence()
        • EventStore.get_events_since()
        • EventStore.get_event_by_id()
        • EventStore.count_events()
      • EventQuery
      • AppendResult
        • AppendResult.first_sequence
        • AppendResult.last_sequence
      • SqliteEventStore
    • Projections
      • Projection
        • Projection.name
        • Projection.apply()
        • Projection.get_state()
        • Projection.reset()
        • Projection.handles_event_type()
      • StageMetricsProjection
        • StageMetricsProjection.name
        • StageMetricsProjection.apply()
        • StageMetricsProjection.get_state()
        • StageMetricsProjection.get_task_state()
        • StageMetricsProjection.get_metrics_for_type()
        • StageMetricsProjection.get_task_metrics_for_name()
        • StageMetricsProjection.reset()
        • StageMetricsProjection.get_top_slowest_stages()
        • StageMetricsProjection.get_top_failing_stages()
        • StageMetricsProjection.to_dict()
      • StageMetrics
        • StageMetrics.success_rate
        • StageMetrics.failure_rate
        • StageMetrics.avg_duration_ms
        • StageMetrics.median_duration_ms
        • StageMetrics.p95_duration_ms
        • StageMetrics.min_duration_ms
        • StageMetrics.max_duration_ms
        • StageMetrics.to_dict()
      • WorkflowTimelineProjection
        • WorkflowTimelineProjection.name
        • WorkflowTimelineProjection.apply()
        • WorkflowTimelineProjection.get_state()
        • WorkflowTimelineProjection.reset()
        • WorkflowTimelineProjection.get_stages()
        • WorkflowTimelineProjection.get_tasks()
        • WorkflowTimelineProjection.get_failures()
      • WorkflowTimeline
        • WorkflowTimeline.to_dict()
      • TimelineEntry
        • TimelineEntry.to_dict()
    • Replay
      • EventReplayer
        • EventReplayer.rebuild_workflow_state()
        • EventReplayer.time_travel_query()
        • EventReplayer.replay_workflow_from_checkpoint()
        • EventReplayer.get_entity_history()
        • EventReplayer.compare_states()
      • ReplayResult
      • WorkflowState
        • WorkflowState.to_dict()
    • Snapshots
      • Snapshot
        • Snapshot.to_dict()
        • Snapshot.from_dict()
      • SnapshotStore
        • SnapshotStore.save_snapshot()
        • SnapshotStore.get_latest_snapshot()
        • SnapshotStore.create_workflow_snapshot()
        • SnapshotStore.should_snapshot()
        • SnapshotStore.record_event()
      • SnapshotPolicy
        • SnapshotPolicy.should_snapshot()
        • SnapshotPolicy.record_snapshot()
        • SnapshotPolicy.record_event()
    • Subscriptions
      • DurableSubscription
        • DurableSubscription.matches()
      • SubscriptionManager
        • SubscriptionManager.create_subscription()
        • SubscriptionManager.delete_subscription()
        • SubscriptionManager.load_subscription()
        • SubscriptionManager.start()
        • SubscriptionManager.stop()
        • SubscriptionManager.process_once()
        • SubscriptionManager.get_subscription_status()
        • SubscriptionManager.get_all_subscription_status()
Stabilize
  • Search


© Copyright 2026, Stabilize Contributors.

Built with Sphinx using a theme provided by Read the Docs.