Show HN: Restate – Low-latency durable workflows for JavaScript/Java, in Rust
Overview & Core Value Proposition
- Restate is presented as a low‑latency, durable execution/workflow engine with its own integrated data layer and SDKs (TS/Java, Go in progress).
- Main promise: “handlers always run to completion” via journaling and replay, reducing the need for ad‑hoc idempotency and state‑machine boilerplate.
- Designed to be self‑contained (single binary, no external DB required) but with pluggable storage and a Postgres‑compatible query interface for internal state.
Relation to Temporal, Step Functions, Airflow, etc.
- Many questions compare it to Temporal. Claimed differences:
- Lower latency via event‑log design and not spawning separate “activities” processes.
- Push model that fits FaaS (e.g., Lambda) better than Temporal’s pull‑worker model.
- Broader use beyond workflows: durable RPC, actor‑like “virtual objects,” Kafka ingestion.
- Compared to Step Functions: worse today on visualization, better on type‑safe “workflows as code,” and potentially lower cost/latency for complex patterns.
- Compared to Airflow/Prefect: positioned more for fine‑grained, low‑latency transactional flows than heavy data pipelines.
Language & Runtime Support
- Official SDKs target TypeScript and Java; Go SDK exists as a community MVP and is expected to be adopted and stabilized.
- Python is one of the top user requests; maintainers hint at a 6–12 month horizon but no firm date.
- Interest in Deno/Cloudflare/Bun; a TS user reports a Cloudflare Workers PoC with minor SDK tweaks, and official runtime-agnostic support is planned.
Durability, Idempotency, and Long‑Running Workflows
- System records intermediate steps, replays only from failure points, and expects individual side‑effects to be idempotent or compensatable.
- Long‑running workflows are recommended to be decomposed into delayed calls rather than single “sleeping” handlers, to ease code evolution and safety.
- Versioning and routing of in‑flight executions to old code versions is supported; concerns remain about running very old binaries (security, config drift).
Use Cases & Patterns
- Discussed use cases: async tasks, cron‑like jobs, fan‑out/fan‑in, LLM/ML pipelines, human‑in‑the‑loop flows, transactional business processes.
- Compensation/rollback patterns are supported via normal try/catch and guaranteed completion semantics.
Cloud Offering & Deployment Concerns
- A managed “Restate Cloud” launched alongside; currently early access with a free tier, consumption pricing planned.
- Some users want a fully serverless orchestrator and HA multi‑node self‑hosted mode; multi‑node support is “actively in progress.”
- Cost and security of using vendor‑hosted orchestration vs self‑hosting are recurring concerns.
Licensing & Ecosystem
- Core is under BSL with an extra grant intended to block cloud providers from offering it as a managed service while allowing most other uses.
- At least one commenter finds calling it “open source” misleading and worries it restricts building workflow‑driven platforms on top.
- Maintainers indicate willingness to adjust terms if they unintentionally block such applications.
Developer Experience & Critiques
- Several users praise ease of cloud setup, docs, and the “virtual objects” abstraction, though the name is seen as underselling its power.
- Requests for: pull‑based handlers for easier integration, richer visualizations, better Next.js/Node support, diagramming tools, and built‑in HTTP client wrappers that hide state handling.
- Some skepticism about the marketing emphasis on “in Rust” and differing views on Rust’s suitability for highly concurrent backends.