---
title: "What the beta ships with, and what it does not"
url: "https://palumb.com/blog/what-the-beta-ships-with"
description: "The waitlist is open. What is in the beta, what is declared for later, what one run means, and the one thing a Palumb workflow will never do."
---

[← Blog](/blog/)

# What the beta ships with, and what it does not

![](/adriano-foschi.webp)

[Adriano Foschi](/about/)

4 September 2026

![A pigeon in flight seen from behind, wings spread to both edges of the frame, heading towards a distant chequered finish banner above violet hatched valleys.](/blog/what-the-beta-ships-with.webp)

**The waitlist is open, and it is a queue rather than a selection.** Everyone on it gets a key as soon as there is one to give. [Joining](/waitlist/) is free, asks for an email address, and there is no form to fill in beyond that.

You will be able to try it on the Palumb cloud for nothing (the [free tier](/pricing/) is 500 runs a month, and there is no card to give) or on your own infrastructure with a `docker compose up`, which is [three services](/self-hosting/).

So here is what the beta includes, and what it does not. This answer carries a date because it is the kind of answer that changes, which is why it lives in a post and not on a page.

## The list

|  | At beta |  |
| --- | --- | --- |
| Email, on your own SMTP | Yes | One channel, your credentials, encrypted per tenant and never pooled |
| The durable engine | Yes | Multi-step, waits in days, digests, waiting on an event |
| Subscribers, topics, subscriptions | Yes | The address book and who is signed up to what |
| Every attempt recorded | Yes | With its outcome and reason, kept 90 days |
| The Bridge, signed both ways | Yes | Palumb signs the call, you sign the reply, and a bad signature fails closed |
| REST API and SDK | Yes | The whole surface on day one |
| The source, published | Yes | The delivery path under AGPL-3.0, the SDK under MIT |
| SMS, Telegram, Slack | No | Declared. The supported providers are named before the channel ships |
| Web push, mobile push | No | Declared. Web push needs no provider at all |
| A Terraform provider | No | Config as code, but nothing reads it yet; at beta it goes through the admin API |
| A dashboard | No | Subscribers, topics and reports have an API, not a screen |
| An MCP server | No | Worth having once there is traffic to ask about |
| Signing up and paying by yourself | No | Issued by hand. Everyone on the waitlist gets one: a queue, not a selection |
| Separate environments | No | And not merely later: today that means separate accounts, with separate keys |

The durable engine is the part I am least willing to ship half-built, so it is not the part that gets cut. Six channels are declared and one ships at beta, which is the honest order: a channel costs an adapter and a credential, and naming the providers before the channel arrives is part of the work.

One run is one workflow execution for one recipient, counted when it starts, whatever it takes to get there, and whether or not it ends up sending anything. A trigger to a topic of five hundred is five hundred. That is the whole unit, it is what the free tier counts, and it is the only thing [the pricing page](/pricing/) meters.

## One thing that is a gap, not a wait

Separate environments are the row I would argue with, if I were reading this table rather than writing it. Keeping a staging setup away from production today means a second account with its own keys, which works, and which is not the same thing as asking for an environment in the API.

I would rather it sat here than on the pricing page, because a post carries a date and a page pretends to be true forever. If environments arrive, this is where it changes.

## One thing that is neither, and will not arrive

A Palumb workflow decides and sends. The steps are `send`, `delay`, `waitForEvent`, `collect` and `trigger`, and not one of them runs code of yours inside a run. That is not a beta gap and it is not a roadmap item: there is no way to execute your function on my infrastructure, and there will not be one.

The reason is whose fact it is. The one thing such a step was good for was writing the outcome of a workflow back into your system: the violation recorded, the invoice marked as chased. But the outcome is something I already know. In an escalation that nobody answered, I know both sends went out and that no wait was ever woken. Nothing happens in a run that I know and you cannot be told, so asking your code to write it down is asking you to rebuild something of mine. What I will extend, if you ask for it, is the record.

If what you actually want is a general purpose durable task engine, Palumb is not one, and Temporal, Restate and Inngest are. I would rather send you there in a post than have you find out after the key arrives.

If you have a suggestion, or a question of any kind, write to me at [hello@palumb.com](mailto:hello@palumb.com). I answer.

Everyone who joins gets in, and it costs nothing. Your invite goes out when the beta opens.

[Join the beta](/waitlist/)