Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Hatchet – open-source, event-based workflow engine (github.com/hatchet-dev)
7 points by abelanger on Jan 12, 2024 | hide | past | favorite | 2 comments
Hey HN - over the past few months, I’ve been working on Hatchet, which is a workflow engine meant for event-driven applications. Workflows are triggered by user-defined events (along with schedules and cron jobs). It bundles a web UI for observability and has several integrations built out (Sentry, OpenTelemetry, Slack).

It’s very similar to using an SQS + EventBridge + AWS Lambda stack, but uses worker pools to process functions instead of isolated function invocations. Some features that Hatchet offers:

1. Publish, react to, and query events using the Events API [1]

2. You can define services via `worker.NewService` which can run a set of methods. For example, you can define a `users` service which schedules user notifications, creates a user sandbox environment, processes user events, etc.

3. It’s designed to be modular, so you can plug in your own task queue implementation or event storage repository. I built it using Postgres and RabbitMQ, but would love to support better event storage via Clickhouse and other message queues.

4. Workflows are declarative, which means you define the structure of your workflow when registering them with the Hatchet engine. This means that each workflow run is predictable and executes an immutable workflow version.

It currently only supports a Go SDK but Typescript and Python are on the near-term roadmap.

Looking forward to hearing any questions or feedback you have!

[1] https://docs.hatchet.run/go-sdk/pushing-events



- Clickhouse would be really nice. It's frequently being hosted anyways for something else so using the same cluster for this would be great. Wouldn't have to manage more infra. It's true that pg also exists frequently, but idk that I'd want to risk bogging down the OLTP.

-being able to spec a workflow w/ Go is really nice. yaml always feel cumbersome to me, but I also don't use it regularly in my day to day.

- love that it's MIT

-the Slack use case is cool, but I'd kill for Matrix or maybe Zulip. Feels like there isn't a simple way to do this w/ the other team comm apps beyond Slack rn.

-more use-case examples in the README might be a good idea too. Workflow is an overloaded term in my head and I did struggle to figure out where I'd reach for the "hatchet" in my day to day.


Thanks for the feedback! Going to take a look at what integrating with Matrix would involve.

> -more use-case examples in the README might be a good idea too. Workflow is an overloaded term in my head and I did struggle to figure out where I'd reach for the "hatchet" in my day to day.

Agreed, can't really find a better term than workflow to describe a set of tasks that execute and are dependent on each other. To execute a single step it's basically a background job runner/task queue, but it's chaining those tasks together and sending the output of one task to the input of another which makes it more powerful. Regardless, I'll add some more use-cases to the README.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: