Skip to content

What is palumb?

palumb is a notification platform you program, not configure.

Most products send notifications. The hard part is never the single send — it is everything around it: which users to notify, when to batch instead of spamming, what to do when a provider is down, how to avoid sending the same email twice after a crash, and keeping every provider credential out of your application code.

palumb splits that problem cleanly in two:

  • You write the workflow. Plain TypeScript behind one signed webhook; palumb’s engine runs it durably. “When an order is created, wait a minute, batch the orders for that customer, then email them a summary.” Branches, loops, and calls into your own code are all just code — there is no low-code canvas to fight.
  • palumb runs the control plane. A managed service that receives your triggers, knows your audience, holds your channel credentials (encrypted), and makes the actual provider calls. You express intent; palumb does the I/O.

The boundary is the whole point: you never touch a provider’s API keys, and palumb never sees your business logic. Each side owns what it is best at.

flowchart LR
    App["Your app<br/>order O-1 for cust_1"]
    Core["palumb-core<br/>(managed control plane)"]
    WF["Your Bridge<br/>orderCreated workflow"]
    Provider["Provider<br/>SMTP / Slack / …"]

    App -->|"① POST /v1/events"| Core
    Core -->|"② drive your Bridge, durably"| WF
    WF -->|"③ step.send: email to cust_1"| Core
    Core -->|"④ real send, your encrypted creds"| Provider

Two HTTP hops, one durable runtime in the middle. The Architecture page walks the full loop.

palumb is for product and platform engineering teams that:

  • already have a backend and want notification logic to live in code they own, reviewed and tested like the rest of their system;
  • need durability guarantees — no lost notifications, no double sends — that are painful to build by hand;
  • want to keep their notification data in the EU, run by a managed provider, without operating the infrastructure themselves.

It is not a marketing-email tool, and it is not a drag-and-drop builder for non-developers. If your workflows are written by people who do not write code, palumb is the wrong shape.

The durable runtime under your workflows is Restate. You do not have to become a Restate expert to use palumb — the SDK gives you a small, opinionated surface — but it is why “wait a minute, then batch and send” survives a process restart without you writing any checkpointing code. See Durability & Restate.

  • How it works — the control-plane / your-code split in detail.
  • Why palumb — where it fits versus the alternatives.
  • Quickstart — run the whole loop end to end.