HackerTrans
TopNewTrendsCommentsPastAskShowJobs

_alphageek

no profile record

Submissions

Show HN: Orch8 – Durable workflow engine in Rust, one binary, Postgres or SQLite

github.com
26 points·by _alphageek·2 माह पहले·5 comments

comments

_alphageek
·9 दिन पहले·discuss
Location: Brazil (UTC-3) Remote: Yes (remote only, US timezone overlap) Willing to relocate: No Technologies: Rust (Tokio, Axum, Tonic, WASM),Node.js/NestJS/TypeScript, React, PostgreSQL, Redis, RabbitMQ, Docker, AWS/GCP, zk-SNARKs Résumé/CV: https://www.ovasylenko.com Email: [email protected] Backend & systems engineer, 18+ years. Two recent builds: Rust — Solo-built Orch8 (orch8.io), a durable workflow orchestration engine. 2,400+ instances/sec, <3ms latency. 7 crates, 3 SDKs (Node/Python/Go), 200+ integrations, built-in LLM tool calling and ReAct agent loops.

Node.js/NestJS — Matching engine for a crypto exchange processing 4,000+ orders/sec with sub-millisecond latency. Liquidity bots, candle engine, real-time WebSocket trading.

Also: zk-SNARK wallet engine at Panther Protocol (cross-chain, UTXO model), micro-frontend migration at PropertyGuru (4 product teams). Led 15 engineers across 3 time zones.

Looking for: Senior/Staff Rust systems, backend architecture (Node.js or Rust), Web3/protocol engineering, or AI infrastructure roles. I care about product ownership and shipping - not process theater.
_alphageek
·18 दिन पहले·discuss
[flagged]
_alphageek
·18 दिन पहले·discuss
>> QUERY request can be cached

I have a weird feeling. Query body is encrypted by https. So CDN will not be able to cache results. In order to make it work right - whole topology of the internet should be redone. Caching on the backend server will not give any real gains for large scale apps.
_alphageek
·पिछला माह·discuss
Location: Brazil (UTC-3) Remote: Yes (remote only, US timezone overlap) Willing to relocate: No Technologies: Rust (Tokio, Axum, Tonic, WASM),Node.js/NestJS/TypeScript, React, PostgreSQL, Redis, RabbitMQ, Docker, AWS/GCP, zk-SNARKs Résumé/CV: https://www.ovasylenko.com Email: [email protected]

Backend & systems engineer, 18+ years. Two recent builds: Rust — Solo-built Orch8 (orch8.io), a durable workflow orchestration engine. 2,400+ instances/sec, <3ms latency. 7 crates, 3 SDKs (Node/Python/Go), 200+ integrations, built-in LLM tool calling and ReAct agent loops.

Node.js/NestJS — Matching engine for a crypto exchange processing 4,000+ orders/sec with sub-millisecond latency. Liquidity bots, candle engine, real-time WebSocket trading.

Also: zk-SNARK wallet engine at Panther Protocol (cross-chain, UTXO model), micro-frontend migration at PropertyGuru (4 product teams). Led 15 engineers across 3 time zones.

Looking for: Senior/Staff Rust systems, backend architecture (Node.js or Rust), Web3/protocol engineering, or AI infrastructure roles. I care about product ownership and shipping - not process theater.
_alphageek
·2 माह पहले·discuss
I would have liked to have the checks-off delta plotted across rustc versions - the deck notes this stuff moves non-monotonically, so a trend line would say more than a single-version snapshot.
_alphageek
·2 माह पहले·discuss
I ve seen already one question like that in the thread. But I rephrase it slightly sharper. Did you consider renting out you setup to vast.ai and if so, how much money it can generate per month deducting electricity.

Also, sorry for the noob question, is not such server generate enormous amount of heat? You did not use any special cooling system?
_alphageek
·2 माह पहले·discuss
I still have 42k page indexed, but previously I had 20k impressions per day, past week impressions started to change. And now I have 399 impressions per 24 hours :/
_alphageek
·2 माह पहले·discuss
[dead]
_alphageek
·2 माह पहले·discuss
Amazing.Thank you
_alphageek
·2 माह पहले·discuss
Thanks! Effect-ts is totally different tools though. It's an effect system (managing side effects, composability, error channels), while orch8 is about durable execution: your workflow survives crashes, deploys, and restarts without losing a single step. Currently LLM drives demand for the orchestration systems. As them requires loops under them to solve the real-world problems. The core principles under orch8 is to have llm heavy workflows, f.e. llm step is exists out of the box and it can modify execution at a runtime. Regarding which framework for non-tech users, in my humble opinion - non of the yet. Effect-ts requires steep learning, temporal requires understanding of determinism constraints. Even Inngest assumes you can write code. Declarative way of defining workflows, in my opinion is the way to og. As llm can generate declarations, workers, tests and run on their own. I shipped also cloud.orch8, one of the core ideas is the templates, where user can click through template - fill their variables and have their executions running with 0 code. but as ti is early development, I did not develop many templates yet - something I gonna focus next few months.In slightly far future I plan to ha templates marketplace, where people can earn money for designing solutions for other people/companies.
_alphageek
·2 माह पहले·discuss
Hi HN,

TBH, it is my first post here and I am nervous a lot, as I put a lot of effort into this product. I have been building http://orch8.io for past 2 months. The story started when I used Temporal for long-running workflows, month after month/many months/years, and ended up in a situation where I needed to write lots of fixes around Temporal. Temporal is a great tool, covering most of the use cases, but for long-running execution, solution around it is starting to be very painful and too complex. Especially if the workflow can be updated 2-3 times during execution.

So I decided to go with Rust, as it is fast, small, and can have only 1 binary. Atm it supports only two dbs. SQLite for local development and PostgreSQL for scaling.

Workflows are defined as JSON blocks(sequences), and the engine persists state so work can resume after crashes or restarts.

Orch8 includes many workflow/application semantics out of the box. Instead of modeling everything as code-level activities, sequences use higher-level blocks directly:

- Semantics: Parallel, Race, TryCatch, Loop, ForEach, Router, SubSequence, and CancellationScope blocks

- A/B testing blocks for deterministic variant selection

- Built-in LLM calls across major providers(Also, LLM can inject additional steps into the current execution automatically, if you design the sequence that way)

- Human review(when smn need to approve before the decision. It is very helpful for early sequence development, where there might be bugs and you need to verify that you are not doing something wrong on critical blocks. One use case, I have connected it to a Telegram bot with the Polymarket test. I am getting information, should we go or not go with bet on analysis done with LLM and opportunities found )

- I decided to integrate ActivePieces out of the box. It allows to have 200+ connectors to different tools immediately and takes the burden of diversity of integrations off my shoulders

- Any non-standard behavior is done via external workers in any language via REST polling. Also, I shipped 3 SDKs: Node/Python/Go

- JSON-defined workflows that can be generated, versioned, and shipped without compiling worker code

- Overall I wrote 2000+ tests 1300 unit, 700 integration tests, and increasing coverage every week

Other pieces included today:

- Durable execution with retries, snapshots, and dead-letter handling

- Scheduling with relative delays, business-day rules, timezones, send windows, and cron triggers. F.e. never send sales emails on weekends; Or use jitter window of 4 hours to send 1000 emails.

- Rate-limit pools with rotation, daily caps, warmup ramps, and defer-on-limit behavior

- Added Prometheus metrics, structured logs, and audit logs(I did not test it well in prod, yet, might be some glitches)

- I have created a polymarket worker for anyone who wants to integrate it. It covers all API and is located in org repo.

Will be honest:

- This is not battle-tested at Temporal scale

- No visual workflow builder yet; sequences are JSON for now. Plan in the nearest future. But it is nice-to-have, I do not see crucial value in it. Thought, I have a vision how to make it different and friendlier than usual(thanks for 6 years of d3 development in early career)

- Still early, so I would not pretend every production edge case has been found. But I really appreciate contribution or suggestions.

License is BUSL-1.1. You can use it in production unless you are offering Orch8 itself as a competing hosted/embedded service. Each release converts to Apache 2.0 after 4 years.

Links:

- GitHub: https://github.com/orch8-io/engine

- Docs: https://orch8.io/docs

- Quick start: `docker run -d -p 8080:8080 ghcr.io/orch8-io/engine:latest`

I would like to hear from people who have used Temporal, Airflow, Prefect, Dagster, or homegrown workflow systems. What are your pain points now?

Thank you, guys.

With respect, Oleksii.
_alphageek
·2 माह पहले·discuss
The duplicate-state collapse (hoisting the match out of the await branches like in his process_command example) is the single easiest pattern anyone can apply to existing async code today. No compiler work needed, just a refactor.
_alphageek
·2 माह पहले·discuss


  Location: Rio de Janero, BR -3 GMT
  Remote: Yes
  Willing to relocate: No
  Technologies: Rust, Nodejs, Typescript, React, Postgres, optimizations and mission critical systems, systems toolkits, exchanges, security audits
  Résumé/CV: www.ovasylenko.com
  Email: [email protected]
  Others: Get things done attitude
_alphageek
·2 माह पहले·discuss
I go full course with supabase, they have compatible S3 storages. So auth, db, storage in same place and pretty easy to manage.
_alphageek
·2 माह पहले·discuss
I would treat bwrap processes as single-use across tenants, since host-side state (allocator, FDs, namespace bits) accumulates and you can not really prove it clean.
_alphageek
·2 माह पहले·discuss
The C++11 example is the weakest in the article by its own thesis. Public throwing constructor, no year check, no leap-year check, so Birthdate(0, 2, 30) constructs cleanly. The C++17/23 shape (private ctor + static factory) is the actual mechanical insight from King's essay. Make the constructor a function that can fail, so the type itself carries the proof.
_alphageek
·2 माह पहले·discuss
The weak link in the argument is the "1-2 GB DRAM stays stable" claim. That tier is stable because demand sits elsewhere. If AI workloads actually migrate down-capacity at scale (which is what the piece advocates), pricing pressure follows them.
_alphageek
·2 माह पहले·discuss
[dead]
_alphageek
·2 माह पहले·discuss
I would also mention Rc/Arc is Cow<T> -it lets you borrow by default and only clone when you actually mutate. It sits in the middle of the spectrum andsaves a lot of allocations in code paths where most callers just read.
_alphageek
·3 माह पहले·discuss
[dead]