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.