the orchestration engine for everything async: ai agents, background tasks, pipelines. billions of tasks run, from the fortune 100 to cursor, greptile, enter

San Francisco, CA
Joined February 2024
C++ was the first language I learnt and abstractions were quite important from day one. The way objects can mutate their way to various identities and the compiler makes it all work is one of the beautiful ways of reasoning about writing useful code, something that OOP languages brought with them. If you're building a startup today, one of the core strategies to become a winner in your space is to build a platform with abstractions and primitives that scale across various use-cases. I tend to always think on these lines given my early intro to programming with languages like C++ and Java. So naturally, I love working at @hatchet_dev where we are building the orchestration engine to power every workload out there. The primitives we have built over the time have been extremely powerful to provide our users with an abstraction layer over all of their running workflows and jobs, ranging from AI agents to data pipelines and even notification systems.
1
2
92
Our European takeover continues. We're so excited to have JB on the @hatchet_dev team!
please join us in welcoming jean-baptiste souvestre to the team! based in paris (ooh-lala), JB joins our growing engineering squad in europe. 🥖🇪🇺🍷 we asked him some questions to get to know him better, here's what he said: ➡️ light mode or dark mode? 🎤 what is a light mode? ➡️ we're told you're a cat man. tell us about your cats. 🎤 so i have 3 cats, kiki, chablis, and croche-pattes, all of whom are scoundrels in one way or the other. they love wet food, waking up at 4pm, and going to bed at 5. ➡️ how did you first come across hatchet? 🎤 i wanted to introduce hatchet to my last company because i liked the tech that much, but i figured it might just be more fun to work on it directly. ➡️ if i were in paris for one (1) day and wanted to get the best croissant, where would you suggest i go? 🎤 that's mamiche, in the 10th arrondissement, for sure. ➡️ what's something that surprised you in your first week here? 🎤 honestly can't decide between the tech maturity at such a young startup and the amount of custom frog emojis one can add to slack. ➡️ last, but not least: claude code or codex? 🎤 claude, but just because it was a french first name. bienvenue à bord, JB! 🚀
2
3
13
556
back in february, when we first released the @hatchet_dev CLI, we were pretty adamant that it was the CLI, and not an MCP, that would be the primary entrypoint for agents using Hatchet. and this has definitely been the case! but the rise of coding agents and the latest MCP spec are making MCPs much more usable across a wider range of services by supporting serverless request/response. and, frankly, we've been using MCP servers much more -- shoutout to @Posthog and @Figma. so we're releasing a new and updated MCP which does everything you'd expect -- debugging runs, triggering workflows and runs, and inspecting configuration of workflows and tasks -- so you can use either the CLI or the MCP (or the regular SDKs) to accomplish what you need.
2
10
288
our new overview page 1) is great for observability over your workflow orchestration; and also 2) offers relief from the sisyphean burden of shame and guilt over limited metric visibility that we all must carry as we roam this mortal coil. it's great
Replying to @hatchet_dev
wracked with #GUILT because you don't have visibility into key metrics? CLEANSE YOUR CONSCIENCE!! 🌈
2
1
7
328
We've gotten some great feedback already on our new overview page, excited to share it with everyone!
WE have a NEW overview page 🧨 🧨 🧨 that's right, you read that correctly, hatchet now has a fancy, brand-spankin'-NEW (!!!!) ~ overview page ~ that shows you ALL the stats you might need to know
1
5
288
we're open sourcing a library we’ve been working on at Hatchet called pgoutbox. github.com/hatchet-dev/pgout… it implements a high-performance transactional outbox (specifically, for Go applications that use postgres via the pgx driver, but we'd like to make it available in other languages soon). we’ve been running it in production for the past 3 months at Hatchet, processing tens of thousands of messages per second. benchmarks on my local laptop have it going > 200k messages / second. what's a transactional outbox? it's a pattern for solving a lost-write problem in distributed systems. imagine a user signs up for your app and you’d like to create a new row in your users table and send them a welcome email. if your API crashes or restarts after you commit to the users table, but before sending a welcome email, the write to the email service is lost forever. so instead, you write the message to an outbox table as part of the same tx as the user write. obviously there’s a lot of intersection with task queues built on Postgres — transactional enqueuing is one of the main benefits! we had a few requirements that make typical task queue libraries a poor fit. first, it needs to support hundreds of thousands of different topics with exclusive consumers. this can get a bit tricky to scale due to MVCC on Postgres; if you attach a lease with a heartbeat to each topic, you’ll perform wayy too many updates and accumulate lots of dead tuples. second, it needs to support immediate message deletion with configurable retention policies per topic. this is quite different from a durable queue, where you’d like to preserve messages for future replays and auditing. third, it needed a solid scaling story and APIs built around batching. here for feedback / questions!
13
20
1
169
10,211
our cto has a way with words ... ... he is not wrong though; but i'd call us efficient rather than cheap :) and all that efficiency work allows us to pass on (some of the) savings to customers xitter.cf/gabe_ruttner/status/21…
I won the battle on using the word cheap to describe @hatchet_dev's new pricing, so i'm going to take full advantage: cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap
1
4
205
really excited for this one. this is the result of ~2 years of obsessing about one thing: performance. building a general-purpose workflow engine is a double-edged sword; it's great for developers and coding agents because you can use it to solve a bunch of different problems, but at the same time, users might run tasks using a mixture of features you've never seen before. you see this all the time with general-purpose databases, btw, like postgres -- super fast in most cases but if you use just the wrong combination of features it gets really slow and non-performant. so there were a few workloads on hatchet cloud which cost us an insane amount of $$$ to run. deeply negative margins. but rather than raise prices for these users, we basically just doubled down, then doubled down again, on improving performance. we've actually kept our infra spend pretty much flat for ~14 months, despite increasing revenue over 4x in that time period. better performance means less load on the databases, smaller spikes, and fewer machines. which leads directly to savings for users.
We made Hatchet cheaper to run, so we’re making it cheaper to use. 🔥 Self-serve Hatchet Cloud is now pay-as-you-go. Add a card and your first 1M task runs and 1M events each month are free, 10x more than before. Then it’s $30 per million runs with no plan fees.
5
3
1
15
3,183
we're cutting our prices!!! yes, we're making less money, and i couldn't be more excited. @hatchet_dev cloud is now pure pay-as-you-go: 1M free task runs a month with no plan fees why? we're betting on an async future, and we want hatchet to be where it runs.
We made Hatchet cheaper to run, so we’re making it cheaper to use. 🔥 Self-serve Hatchet Cloud is now pay-as-you-go. Add a card and your first 1M task runs and 1M events each month are free, 10x more than before. Then it’s $30 per million runs with no plan fees.
1
4
11
684
I won the battle on using the word cheap to describe @hatchet_dev's new pricing, so i'm going to take full advantage: cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap cheap
We made Hatchet cheaper to run, so we’re making it cheaper to use. 🔥 Self-serve Hatchet Cloud is now pay-as-you-go. Add a card and your first 1M task runs and 1M events each month are free, 10x more than before. Then it’s $30 per million runs with no plan fees.
1
1
6
609
hatchet retweeted
some photos from the wonderful @hatchet_dev offsite. unfortunately, did not see any cod, but was able to hang out with some very cool people
1
5
115
best people, best location, best company, best offsite
Here's a look behind the scenes at our team offsite in Cape Cod last week! ⛵️🚲🦞🎄🌊 (Not shown here: @igor_kupczynski trying a lobster roll for the first time, loving it, and then ordering a second, third, fourth, etc.)
1
3
138
shoutout to the charcuterie king @vqtbl4q who personally arranged the baby carrots on the board in descending rows from smallest to largest
Here's a look behind the scenes at our team offsite in Cape Cod last week! ⛵️🚲🦞🎄🌊 (Not shown here: @igor_kupczynski trying a lobster roll for the first time, loving it, and then ordering a second, third, fourth, etc.)
2
2
7
540
I asked Megan: why bananas? The answer: I feel like they're a silly fruit, I'm a silly person. There's no deeper meaning here. Enjoy!
for our offsite hackathon, i created hatchet.run/bananas it is bananas 🍌
1
7
915
We're getting close to releasing a new feature called operators, which enable Hatchet workers to run anywhere (not just a long-lived containers with gRPC support). Turns out that includes @useTRMNL e-ink displays! The entire Hatchet team is in Cape Cod for a hackathon, and I'd occasionally look over and see @vqtbl4q and @mnafees with a huge rig of TRMNLs rendering some crazy Rorschach-looking things. The video doesn't show this, but you can also register new TRMNLs as part of this rig and it'll synchronize and resize the bitmaps on each display. All of this synchronization is handled by the Hatchet serverless operator. Naturally, @mnafees also built a Hatchet dashboard into TRMNL, pictured below. We're working on getting this on the TRMNL marketplace soon!
We got these @useTRMNL e-ink displays for the Hatchet hackathon, and naturally @mnafees and I wanted to get these running as Hatchet workers. Initially we tried to get a vibe coded C SDK running. This worked, but the esp32-c3 processors only have 400kb of RAM, so we were limited to spawning tasks with payloads <25 chars. So instead we started playing around with a new feature in Hatchet called operators, which lets you turn anything that can run an HTTP server into a hatchet worker. This isn't natively supported on TRMNLs, but modifying the firmware to add /heartbeat and /trigger endpoints was very easy. Obviously, the next step was sending base64 images, and then playing Bad Apple at around 1 fps. Had to do some more firmware shenanigans to disable "full refresh" to get below .3fps, but it ended up working pretty nicely.
1
3
11
1,412
hatchet retweeted
We got these @useTRMNL e-ink displays for the Hatchet hackathon, and naturally @mnafees and I wanted to get these running as Hatchet workers. Initially we tried to get a vibe coded C SDK running. This worked, but the esp32-c3 processors only have 400kb of RAM, so we were limited to spawning tasks with payloads <25 chars. So instead we started playing around with a new feature in Hatchet called operators, which lets you turn anything that can run an HTTP server into a hatchet worker. This isn't natively supported on TRMNLs, but modifying the firmware to add /heartbeat and /trigger endpoints was very easy. Obviously, the next step was sending base64 images, and then playing Bad Apple at around 1 fps. Had to do some more firmware shenanigans to disable "full refresh" to get below .3fps, but it ended up working pretty nicely.
1
1
2
8
2,065
problem: wifi doesn't work at the airbnb for @hatchet_dev's cape cod offsite solution: get @Starlink delivered ✅
1
2
12
830
This is one of those "break glass in case of emergency" features that we've gotten a bunch of requests for. Sometimes you'll just have large batches of work failing due to things outside of your control (Github down, Claude down, Azure down). Being able to temporarily pause a workflow until the issue is resolved will make it much less painful to dig out later. We also made it programmatic, so you could in theory build a nightly scheduler where you queue work throughout the day and unpause your workflows at night, to relieve pressure on your systems during peak hours. Excited to see this one released!
New Feature: Workflow Pause → Temporarily stop a workflow from executing new runs → While the workflow is paused, new runs will automatically queue up to a queue TTL and all in-flight runs continue to run Read the docs: docs.hatchet.run/v1/pausing-…
1
5
913
Just announced a ton of solid new updates, including workflow pause, viewer roles, @hatchet_dev Embedded Mode and more
We're really excited to unveil Hatchet Embedded, now available for TypeScript, Python, and Go! 🔥🚀 Hatchet Embedded provides a lightweight way to run a full Hatchet engine inside of your workers, useful for local development, end-to-end testing, and CI.
1
1
5
357
You can now run workers with a full Hatchet engine and a Postgres database running as a sidecar process. This took a long time to get right. Hatchet is a push-based scheduler. Work gets assigned by the engine to a worker, and gets sent over a network (gRPC) call to a worker. We made this choice after seeing the performance limitations of pull-based Postgres queues (based around FOR UPDATE SKIP LOCKED) as you add more queue requirements: global rate limits, concurrency and fairness strategies, etc. The Hatchet engine also handles things like RBAC, user management, tracking worker health, and internal maintenance that would require leadership election in a pull-based model. The tradeoff, of course, is that Hatchet runs separate from the worker process. Which is absolutely the right call in production, but makes local development and CI testing more difficult. While we were at it, we started experimenting with `embedded-postgres`, to remove another external dependency while still building on the Postgres we all know and love. Instantiating a client is literally a single function call. Some more docs here: docs.hatchet.run/v1/embedded
We're really excited to unveil Hatchet Embedded, now available for TypeScript, Python, and Go! 🔥🚀 Hatchet Embedded provides a lightweight way to run a full Hatchet engine inside of your workers, useful for local development, end-to-end testing, and CI.
3
3
15
3,342