Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

100% Positive

Analyzed from 501 words in the discussion.

Trending Topics

#temporal#blocks#execution#workflow#workflows#years#development#json#sequences#engine

Discussion (1 Comments)Read Original on HackerNews

_alphageekabout 6 hours ago
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.