Service types comparison
Basic Service | Virtual Object | Workflow | |
---|---|---|---|
What | Independent stateless handlers | Stateful entity with a unique key | Multi-step processes that execute exactly-once per ID |
State | None | Isolated per object key | Isolated per workflow instance |
Concurrency | Unlimited parallel execution | Single writer per key (+ concurrent readers) | Single run handler per ID (+ concurrent signals/queries) |
Key Features | Durable execution, service calls | Built-in K/V state, single-writer consistency | Durable promises, signals, lifecycle management |
Best For | ETL, sagas, parallelization, background jobs | User accounts, shopping carts, agents, state machines, stateful event processing | Approvals, onboarding workflows, multi-step flows |
Basic Service
Basic Services group related handlers as callable endpoints.- Use Durable Execution to run requests to completion
- Scale horizontally with high concurrency
- No shared state between requests
Virtual Object
Stateful entities identified by a unique key.
- Use Durable Execution to run requests to completion
- K/V state retained indefinitely and shared across requests
- Horizontal scaling with state consistency:
- At most one handler with write access can run at a time per object key. Mimicks a queue per object key.
- Concurrent execution across different object keys
- Concurrent execution of shared handlers (read-only)

Workflow
Workflows orchestrate multi-step processes with guaranteed once-per-ID execution.- Use Durable Execution to run requests to completion
- The
run
handler executes exactly once per workflow ID - Other handlers run concurrently with the
run
handler to signal, query state, or wait for events - Optimized APIs for workflow interaction and lifecycle management