Capabilities and availability
0.5.0 is the current published release. This page maps its capabilities to user guides and operating limits. The installer, native bundles, Python client, worker helper, Rust API crates, container images, and local kit belong to the same release.
Execution and composition
Section titled “Execution and composition”| Capability in 0.5.0 | Where to start |
|---|---|
| Package Python code with prepared dependencies; fetch and cache immutable artifacts on demand. | Register a program |
| Reuse a bounded process pool across programs, with one concurrency setting. | Execution model |
| Submit tasks and workflows, inspect status/results, and request cancellation. | Python client and CLI |
| Find tasks by state, queue, business correlation and submission time, using bounded pagination. | Task discovery contract |
| Compose workflows using typed entrypoints, explicit local steps, distributed tasks and owned subworkflows. | Your first workflow and workflow context |
| Fork independently checkpointed branches, perform local work, and join selected branches. | Mix local work and branches |
| Suspend for tasks, timers or external events and resume without retaining a waiting worker process. | Wait for an event |
| Reuse acknowledged model/tool results with stable operation keys and explicit bindings. | Recover model and tool calls |
| Bind durable human approval to the exact persisted action and effective arguments. | Require approval |
| Deliver terminal result notifications to a configured HTTP receiver after the client disconnects. | Receive results |
Inspection and integrations
Section titled “Inspection and integrations”| Capability in 0.5.0 | Where to start |
|---|---|
| Browse Programs, Executions and Workers in the self-hosted Console. | Explore Console |
| Inspect a workflow’s recorded graph or trace view, and navigate into child executions. | Console reference |
| Inspect and decide persisted approvals in Console, through the client or with the CLI. | Require approval |
| Connect an MCP host through 15 stdio tools, with an optional read-only mode. | Connect an MCP client |
| Export optional OTLP HTTP/protobuf traces and metrics, and write correlated Python logs. | Configure observability |
| Use integrated HTTP acquisition or the optional SQS Standard / ElasticMQ adapter. | Queue delivery |
| Implement custom Rust ports and adapters without exposing provider SDK types in core contracts. | Rust API packages |
| Preview and apply scoped, bounded retention cleanup after at least 90 days of terminal retention. | Retention contract |
Provider clients and agent frameworks belong to application packages. The example catalog includes framework-free workflow patterns, a Google ADK/Gemini support agent, Codex workflows, durable approvals and operation recovery. Model access is a prerequisite of the corresponding live example, not of Ledgence self-hosting.
Installation channels
Section titled “Installation channels”| Method | Availability |
|---|---|
| One-line installer with persistent shell setup. | Published 0.5.0. Install the CLI. |
| Native archives for Linux x86_64/glibc and macOS Apple silicon. | Published 0.5.0. Manual installation. |
| Python client on PyPI and two Rust API crates on crates.io. | Published 0.5.0. Package reference. These do not install the server stack. |
| Docker Hub images for Linux amd64 and arm64, with a matching digest-pinned local kit. | Published 0.5.0. Manage the stack with ledgence local. |
| Build the local Docker Compose stack from source. | Published 0.5.0 source. Source tutorial. |
Install ledgence.worker in an application’s environment for imports, editor support and local business-logic tests. |
Published 0.5.0 on PyPI. Develop Python programs. Add ledgence-worker as a development dependency matching the worker. |
Program preparation and publication
Section titled “Program preparation and publication”Ledgence 0.5.0 adds explicit Docker preparation for Linux worker runtimes, immutable HTTP artifact uploads and saved retry receipts. Optional subsequent registration is bound to the exact uploaded descriptor. The existing filesystem publication path remains supported. See Build and publish Python programs for prerequisites, configuration, limits and interrupted-operation recovery.
These features require matching 0.5.0 CLI/server components and explicit server write enablement. They are not silently added to existing saved local kits. Docker belongs to the local builder; prepared ZIP uploads need no Docker dependency on the server. Program identity remains global within each store, with one artifact per program ID and version; there is no multiarchitecture variant selection or automatic remote storage configuration.
Boundaries that matter
Section titled “Boundaries that matter”Tasks are leaf execution units. Workflows compose work; internal Python code becomes a durable local node only when registered explicitly. A graph comes from persisted Ledgence identities and relationships; optional OTel spans add diagnostics and are not the execution ledger.
Ledgence resumes explicit checkpoints and entrypoints, not an arbitrary Python stack. A provider call or external effect can repeat after an uncertain reply; applications need idempotency or reconciliation for those effects. Running code is operator-trusted. The self-hosted Console binds to one configured instance, without a tenant-administration interface.
PostgreSQL remains the authority even with an external queue. Queue priorities, cost-based worker placement, Kafka/Kinesis/RabbitMQ adapters, hostile-code isolation, and checkpointing a provider’s partial token stream are not built-in capabilities in this release. Capacity depends on the deployed workload and must be measured; these features do not establish a production throughput guarantee.